Unity官方文档:https://docs.unity3d.com/ScriptReference/Selection.html

Selection

Selection类是编辑器类,使用需要using UnitryEditor;且脚本要放在Editor文件夹。

静态变量:

  1. Selection.activeGameObject //返回当前点击的场景游戏物体或Project预制体;选择多个则返回第一个选择的;未选择相应的则返回null
  2. Selection.activeTransform //返回当前点击的场景游戏物体;选择多个则返回第一个选择的;未选择相应的则返回null
  3. Selection.activeObject  //返回当前点击的场景游戏物体或Project资源(包括场景、脚本、预制等任意);选择多个则返回第一个选择的;未选择相应的则返回null
  4. Selection.gameObjects //返回一个数组,内容为当前点击的场景物体或Project预制体;不符合条件的当前选择不会加入到数组;为选择返回长度为0的数组而不是null
  5. Selection.objects  //返回一个数组,内容为当前点击的场景物体或Project资源(包括场景、脚本、预制等任意);不符合条件的当前选择不会加入到数组;为选择返回长度为0的数组而不是null
  6. Selection.transforms //返回一个数组,内容为当前点击的场景物体;不符合条件的当前选择不会加入到数组;为选择返回长度为0的数组而不是null
  7. Selection.selectionChanged //委托,选择的东西变化的时候调用

静态函数:

  1. ///Contains:选择项中是否包含物体
  2. bool Selection.Contains(int instanceID)
  3. bool Selection.Contains(Object obj)
  4. ///GetFiltered:返回按类型和模式过滤的当前选择。
  5. ///对于一个具有多个类型组件的选定的游戏对象,只有第一个组件将包含在结果中。
  6. ///如果类型是Component或GameObject的子类,则支持完整的SelectionMode。
  7. ///如果类型不是Component或GameObject的子类,(例如:网格或脚本对象)则只支持有SelectionMode.ExcludePrefab和SelectionMode.Editable 。
  8. Object[] activeGos= Selection.GetFiltered( GameObject,SelectionMode.Editable | SelectionMode.TopLevel);
  9. ///GetTransforms:允许使用SelectionMode对选择类型进行细粒度的控制。
  10. Transform[]  selectionObjs=  Selection.GetTransforms(SelectionMode.TopLevel | SelectionMode.Editable);

关于SelectionMode https://docs.unity3d.com/ScriptReference/SelectionMode.html

  1. Unfiltered  返回整个选择
  2. TopLevel  只返回最上面选择的transform。另一个选定的transform的选定子物体将被过滤掉。
  3. Deep  返回选择的物体和它所有的子代
  4. ExcludePrefab  排除选择里的所有预制体
  5. Editable  排除任何不被修改的对象。
  6. Assets  只返回Asset文件夹的资源
  7. DeepAssets  如果选择里包含文件夹,则也包括文件夹里的文件和子文件夹。
 
0

UnityEditor--------------之Selection类的变量解析的更多相关文章

  1. Unity3D编辑器扩展(五)——常用特性(Attribute)以及Selection类

    前面写了四篇关于编辑器的: Unity3D编辑器扩展(一)——定义自己的菜单按钮 Unity3D编辑器扩展(二)——定义自己的窗口 Unity3D编辑器扩展(三)——使用GUI绘制窗口 Unity3D ...

  2. Java集合---Array类源码解析

    Java集合---Array类源码解析              ---转自:牛奶.不加糖 一.Arrays.sort()数组排序 Java Arrays中提供了对所有类型的排序.其中主要分为Prim ...

  3. PHP入门基础(一)——标记风格、注释、表单获取、字符串类型、变量解析

    PHP标记风格: //XML风格//推荐的标记风格,可以在XML文档中使用 <?php echo '<p>XML Style</p>'; ?> //简短风格——需启 ...

  4. OC分类(类目/类别) 和 类扩展 - 全解析

    OC分类(类目/类别) 和 类扩展 - 全解析   具体见: oschina -> MyDemo -> 011.FoundationLog-OC分类剖析 http://blog.csdn. ...

  5. C# var声明变量解析

    C# var声明变量解析: 在C#3.0中提供了一种新的声明变量的方式,这就是var. 通过这个关键字,在声明变量时就无需指定类型了,变量类型是在初始化时由编译器确定的.代码如下: var ss = ...

  6. java异常处理:建立exception包,建立Bank类,类中有变量double balance表示存款,Bank类的构造方法能增加存款,Bank类中有取款的发方法withDrawal(double dAmount),当取款的数额大于存款时,抛出InsufficientFundsException,取款数额为负数,抛出NagativeFundsException,如new Bank(100),

    建立exception包,建立Bank类,类中有变量double  balance表示存款,Bank类的构造方法能增加存款,Bank类中有取款的发方法withDrawal(double dAmount ...

  7. static 类成员变量 和 static const类成员变量

    1.使用static类的优点: (1)避免与其他类的成员或者全局变量冲突 (2)可以封装 (3)阅读性好 2.static 数据成员独立于该类的任意对象而存在 static数据成员的类型可以是该成员所 ...

  8. 吐槽C++:C++ 类成员变量初始化 之 初始化带有参数的构造函数 的类成员变量。

    本来我想写这样的代码: class MatchManager{ public: MatchManager() { } class OnTimerRunFuncHelper{ public: OnTim ...

  9. Objective-C类成员变量深度剖析

    目录 Non Fragile ivars 为什么Non Fragile ivars很关键 如何寻址类成员变量 真正的“如何寻址类成员变量” Non Fragile ivars布局调整 为什么Objec ...

随机推荐

  1. 每日英语:China's Wistful Wen Gets His Wish

    As his term as premier was drawing to a close, Wen Jiabao reflected wistfully on some of the goals h ...

  2. ActionScript 3操作XML 详解

    AS3引入了E4X ,它是根据ECMAScript标准处理XML 数据的全新机制.这使得程序员在程序中无缝地操作XML.在AS3中可以使用XML字面值将XML数据直接写入代码,该字面值将被自动解析. ...

  3. python类里面使用装饰器

    参考:http://m.blog.csdn.net/blog/wklken/8118942 def on(name, *args_of_on, **kwargs_of_on): def handle_ ...

  4. opencv项目报错_pFirstBlock==pHead解决办法

    备注: 我上次遇到这个问题的原因是项目设置为MTd导致的 OpenCV是MTd的,我要是改成MDd就编译报错,所以不能采用把项目改为MDd的办法,只能把OpenCV重新编译为MDd的,下载CMAKE, ...

  5. Leetcode:Edit Distance 解题报告

    Edit Distance Given two words word1 and word2, find the minimum number of steps required to convert  ...

  6. Server.MapPath 出现未将对象引用设置到对象的实例

    此文仅在于使遇到相似问题的朋友能少走弯路 asp.net中我用一个页面的cs文件调用一个自定义类,这个自定义类再调用 System.Web.HttpContext.Current.Server.Map ...

  7. Oracle 报错:PLS-00201: 必须声明标识符

    原因:调用其他用户的包或存储过程. 解决方法:在被调用的包或存储过程的用户下授权执行权限给调用用户: grant execute on 包名 to 用户名;

  8. Android View体系(八)从源代码解析View的layout和draw流程

    相关文章 Android View体系(一)视图坐标系 Android View体系(二)实现View滑动的六种方法 Android View体系(三)属性动画 Android View体系(四)从源 ...

  9. maprduce 中reduce数量

    @Override public int getPartition(Text key, FlowBean value, int numPartitions) { String prefix = key ...

  10. Windows系统32位、64位DLL文件的存放位置

    查资料时无意中发现,Windows系统存放DLL的文件路径似乎有点蹊跷: 32位的DLL存放在C:\Windows\SysWOW64,而64位的DLL存放在C:\Windows\System32.即使 ...