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

 
 
1
2
3
4
5
6
7
8
9
10
[InitializeOnLoadMethod]
static void Start ()
{
 
Selection.selectionChanged = delegate
{
Debug.Log(Selection.activeObject.name);
};
 
}

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

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

EditorApplication.hierarchyWindowItemOnGUI

EditorApplication.update

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

 
 
1
2
3
4
5
6
7
8
9
10
11
#if UNITY_EDITOR
    bool selected = false;
    void OnDrawGizmosSelected()
    {
        if (!selected)
        {
            selected = true;
            Debug.Log(gameObject.name);
        }
    }
#endif

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

#你好Unity3D#Hierarchy视图监听gameObject点击事件的更多相关文章

  1. ButtonAddListener监听按钮点击事件

    ButtonAddListener监听按钮点击事件 using UnityEngine; using System.Collections; using UnityEngine.UI; using U ...

  2. Android开发-之监听button点击事件

    一.实现button点击事件的方法 实现button点击事件的监听方法有很多种,这里总结了常用的四种方法: 1.匿名内部类 2.外部类(独立类) 3.实现OnClickListener接口 4.添加X ...

  3. layui监听radio点击事件

    layui.form.on('radio(layui_dataType)', function(data){ console.log(data.elem); //得到radio原始DOM对象 cons ...

  4. [Xcode 实际操作]七、文件与数据-(6 )通过通知中心,实现监听和处理程序退出事件的功能

    目录:[Swift]Xcode实际操作 本文将演示通过通知中心,实现监听和处理程序退出事件的功能. 在项目导航区,打开视图控制器的代码文件[ViewController.swift] import U ...

  5. [Swift通天遁地]三、手势与图表-(1)监听屏幕上触摸事件的各种状态

    ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★➤微信公众号:山青咏芝(shanqingyongzhi)➤博客园地址:山青咏芝(https://www.cnblogs. ...

  6. iOS:使用代理模式监听开关状态改变事件

    记一次解决跨控制器监听开关状态改变的尝试. 为了统一设置UITableViewCell里的内容,自定义了UITableViewCell类的一个基类,命名为SettingCell.SettingCell ...

  7. JS移动端如何监听软键盘回车事件

    移动端经常项目中会有搜索之类的功能,一般实现的是按搜索按钮进行搜索,如果要像PC端一样实现按回车键进行搜索该怎么实现呢? 方法很简单,就是在搜索框的input外面套一个form标签  注意点:form ...

  8. xcode UIButton创建、监听按钮点击、自定义按钮 、状态 、内边距

    代码创建 //创建UIButton UIButton * btnType=[[UIButton alloc]init]; //设置UIControlStateNormal状态下的文字颜色 [btnTy ...

  9. Android如何监听蓝牙耳机的按键事件(转)

    源: Android如何监听蓝牙耳机的按键事件 写在前面: 直接想要代码很简单,你直接把滚动条拉到最底端就可以看到.如果想要十分地了解为什么,那就按照我规划的一步一步来理解.以下测试环境以手头上有的「 ...

随机推荐

  1. alpha,hidden,opaque的一些认识

    如果opaque设置为YES,那么视图会被当做全视图来对待,系统会重绘整个视图 如果opaque设置为NO,那么系统会减少开销,以其中的内容来判定重绘的视图 如果把视图的背景色设置为透明那个,那么op ...

  2. svn认证失败时的解决

    删除用户目录下的.subversion文件夹,这个文件夹记录了密码! rm .subversion/ -rf

  3. 【LEETCODE OJ】Clone Graph

    Problem link: http://oj.leetcode.com/problems/clone-graph/ This problem is very similar to "Cop ...

  4. POJ2449 (k短路)

    #include <cstdio> #include <cstring> #include <cmath> #include <algorithm> # ...

  5. [转]SQLITE3 C语言接口 API 函数简介

    SQLITE3 C语言接口 API 函数简介 说明:本说明文档属作者从接触 SQLite 开始认识的 API 函数的使用方法, 由本人翻译, 不断更新. /* 2012-05-25 */ int sq ...

  6. NLP(Natural Language Processing)

    https://github.com/kjw0612/awesome-rnn#natural-language-processing 通常有: (1)Object Recognition (2)Vis ...

  7. Xcode 7在支持ipad的设备中需要支持分屏!

    http://sandy.int.ru/xcode/xcode7zaizhichiipaddeshebeizhongyaozhichifenping.html 在更新APP的时候发现ERROR ITM ...

  8. 用lucene4.10.2分词器进行分词

    import java.util.Iterator; import java.util.LinkedList; import java.util.List; import org.apache.luc ...

  9. C# 扩展方法 总结

    扩展方法是静态方法,它是类的一部分,但实际上没有放在类的源代码中. 设计一个Money类 public class Money { private decimal amount; public dec ...

  10. SPAdes

    用后感: 拼个小基因组还好,对于很大的基因组,文库很多的,还是不要用了.服务器768G内存,都不够用.... 主页: http://bioinf.spbau.ru/spades 说明书: http:/ ...