赞
踩
Selection 一般会配合 SelectionMode 枚举类使用
Selection 里的方法和变量均为静态
Object activeContext:返回通过 SetActiveObjectWithContext 方法设置的当前上下文对象。 如果选中多个,会默认返回第一个: int activeInstanceID:回实际的对象选择。包括预制件,不可修改的对象的InstanceID。 Object activeObject:返回实际的对象选择。包括预制件,不可修改的对象。 GameObject activeGameObject:返回活动状态的游戏对象(显示在检视面板中的对象) 含Assets 里的预制体。如果第一个不是 GameObject,会返回空。 Transform activeTransform:返回活动状态的 Transform(显示在检视面板中的对象)。如果第一个选中不在 Hierarchy 中,会返回空. 返回多个: Object[] objects:场景中未过滤的选择(选中的所有东西)。 包括文件 预制体 图片等。 GameObject[] gameObjects:返回实际的游戏对象选择。包括预制件,不可修改的对象。返回 GameObject 数组,如果选中的有不是 GameObject,则不放入数组中。Assets 里的预制体也会放入。 Transform[] transforms:返回顶层选择,不包括预制件。如果选中的 Transform 中有父子关系的,会只放入父 Transform,不会放入子 Transform。 int[] instanceIDs:实际未过滤的场景选择返回实例id而不是对象。选中的所有东西的InstanceID。 string[] assetGUIDs:返回所选资源的GUID。Hierarchy 面板里面的选中不放入在内。
bool Contains(UnityEngine.Object obj)
bool Contains(int instanceID)
返回对象是否包含在所选内容中。感觉不用介绍。
UnityEngine.Object[] GetFiltered(Type type, SelectionMode mode)
T[] GetFiltered(SelectionMode mode)
返回按类型和模式筛选的当前选择。可在 Project 面板中使用。
Transform[] GetTransforms(SelectionMode mode)
允许使用 SelectionMode 位掩码对选择类型进行精细控制。可在 Project 面板中使用。
void SetActiveObjectWithContext(UnityEngine.Object obj, UnityEngine.Object context)
选择具有上下文的对象。没看懂。
SelectionMode 在使用时可以多个使用,中间使用 | 隔开。
Unfiltered:返回所有选择。
TopLevel:只返回最上面选择的转换。另一个选定转换的选定子转换将被过滤掉。(现在所有的里面找需要的类型,然后在这里面如果有父子关系,只返回父物体。)
Deep:返回所选内容以及所选内容的所有子内容。(会将子物体也返回。)
ExcludePrefab:排除选择里的所有预制体。
Editable:排除任何不可修改的对象。
Assets:只返回 Assets 目录下的资源。
DeepAssets:如果选择的是文件夹,则包括文件夹下的所有文件和子文件夹。
问题:
Selection.GetFiltered(typeof(GameObject),SelectionMode.Assets|SelectionMode.DeepAssets)
Selection.GetFiltered(typeof(Object),SelectionMode.Assets|SelectionMode.DeepAssets)
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Htf03NVM-1687654624745)(image-20220422102153074.png)]
4.EditorUtility
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。