UnityEditor的Selection类

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


Selection

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


静态变量:

Selection.activeGameObject //返回当前点击的场景游戏物体或Project预制体;选择多个则返回第一个选择的;未选择相应的则返回null
Selection.activeTransform //返回当前点击的场景游戏物体;选择多个则返回第一个选择的;未选择相应的则返回null
Selection.activeObject  //返回当前点击的场景游戏物体或Project资源(包括场景、脚本、预制等任意);选择多个则返回第一个选择的;未选择相应的则返回null

Selection.gameObjects //返回一个数组,内容为当前点击的场景物体或Project预制体;不符合条件的当前选择不会加入到数组;为选择返回长度为0的数组而不是null
Selection.objects  //返回一个数组,内容为当前点击的场景物体或Project资源(包括场景、脚本、预制等任意);不符合条件的当前选择不会加入到数组;为选择返回长度为0的数组而不是null
Selection.transforms //返回一个数组,内容为当前点击的场景物体;不符合条件的当前选择不会加入到数组;为选择返回长度为0的数组而不是null

Selection.selectionChanged //委托,选择的东西变化的时候调用

静态函数:

///Contains:选择项中是否包含物体
bool Selection.Contains(int instanceID)
bool Selection.Contains(Object obj)

///GetFiltered:返回按类型和模式过滤的当前选择。
///对于一个具有多个类型组件的选定的游戏对象,只有第一个组件将包含在结果中。
///如果类型是Component或GameObject的子类,则支持完整的SelectionMode。
///如果类型不是Component或GameObject的子类,(例如:网格或脚本对象)则只支持有SelectionMode.ExcludePrefab和SelectionMode.Editable 。
Object[] activeGos= Selection.GetFiltered( GameObject,SelectionMode.Editable | SelectionMode.TopLevel);

///GetTransforms:允许使用SelectionMode对选择类型进行细粒度的控制。
Transform[]  selectionObjs=  Selection.GetTransforms(SelectionMode.TopLevel | SelectionMode.Editable);

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

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

  • 8
    点赞
  • 51
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值