首页 > Unity3D频道 > 【你好Unity3D】 > #你好Unity3D#Hierarchy视图监听gameObject点击事件
2015
11-29

#你好Unity3D#Hierarchy视图监听gameObject点击事件

今天无意间又找到了个好方法

 

前几天有朋友问过我怎么监听sceneview 和 hierarchy视图选择某个gameObject的事件,今天干好有时间我就研究研究。

下面的这两个代理事件大家都知道吧?其实都可以干这件事,但是不完美。因为每一帧都会调用一下,才能做判断
EditorApplication.hierarchyWindowItemOnGUI
EditorApplication.update

我觉得最好的办法,还是说当我选择某个gameObject的时候,由unity回调给我一个事件。所以我又找到了一个不完美的解决方法。在你需要监听点击的gameObject的脚本上添加如下代码。OnDrawGizmosSelected 就是选择的回调。但是它可能会回调多次,所以要进行一次判断保证它只执行一次。

如果想在一个地方统一处理,那么就把事件传出去就行了。 OK 这篇文章是个伪命题,如果你有更好的方法欢迎再下面给我留言,谢谢!

 

 

最后编辑:
作者:雨松MOMO
专注移动互联网,Unity3D游戏开发
捐 赠写博客不易,如果您想请我喝一杯星巴克的话?就进来看吧!

#你好Unity3D#Hierarchy视图监听gameObject点击事件》有 7 条评论

  1. Kaiser 说:

    可以用Selection.selectionChanged

  2. 邹建宁 说:

    请教下Selection.selectionChanged的用法,初学者,看了官方文档,内容也很少。假如我想用这个来实现,编辑器模式下,我场景中选中的物体变颜色,应该怎么写呢?把变色的部分放到{};就可以吗?。还有unity 的编辑器模式下如何实现每帧调用呀?

  3. c6u2 说:

    GAMEOBJECT G=FIND(“XXX”);
    IF(G!=NULL)
    {G. OnDrawGizmosSelected=SHOWSELECTINFO)

    FUN SHOWSELECTINFO()
    {
    DEBUG.LOG…
    }
    是不是这么搞?

留下一个回复

你的email不会被公开。