[Unity] 编辑器扩展学习(四)

[Selection]

用于获取选择的游戏物体.

使用方法:

[MenuItem("Tools/Info", false, 14)]
static void Test4()
{
    Debug.Log("Hierarch:" + Selection.activeGameObject.name);
    //遍历选择的多个对象
    foreach (object obj in Selection.objects)
    {
        Debug.Log("Objects:" + obj);
    }
}

Selection.activeGameObject 返回第一个选择的场景[Hierarch]中的对象.
Selection.gameObjects返回场景[Hierarch]中选择的多个对象,包含预制体等.
Selection.objects 返回选择的多个对象.

效果:

1

如果使用以下代码:

//遍历选择的对象,并立刻销毁
foreach(object obj in Selection.objects)
{
    DestroyImmediate(obj);
}

Destroy方法会将删除的对象放在缓存中,缓存满了,才完全删除,而在编辑器未运行的时候,是没有这片缓存的,所以需要用DestroyImmediate(),立刻销毁。当然,可以直接使用Undo.DestroyObjectImmediate()来销毁对象并记录销毁操作,也就是Ctrl + Z可以撤销.

本文链接:

https://eggmo.net/archives/199/

转载请注明文章链接地址!Thanks♪(・ω・)ノ

1 + 3 =
快来做第一个评论的人吧~