UnityEditor--------------之Selection类的变量解析

UnityEditor的Selection类

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

Selection

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

静态变量:

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

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

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

[csharp] view plain copy
 
  1. Unfiltered  返回整个选择  
  2. TopLevel  只返回最上面选择的transform。另一个选定的transform的选定子物体将被过滤掉。  
  3. Deep  返回选择的物体和它所有的子代  
  4. ExcludePrefab  排除选择里的所有预制体  
  5. Editable  排除任何不被修改的对象。  
  6. Assets  只返回Asset文件夹的资源  
  7. DeepAssets  如果选择里包含文件夹,则也包括文件夹里的文件和子文件夹。  
 
0
原文地址:https://www.cnblogs.com/w-wfy/p/7715544.html