Unity编辑器扩展-第四集-获取物体的方法

第三集链接:Unity编辑器扩展-第三集-添加按钮到组件菜单并且重置组件_菌菌巧乐兹的博客-CSDN博客

 一、本节目标+效果展示

1.改选中单个物体的名字

Unity编辑器扩展-第四集-获取物体的方法_第1张图片

2.改选中所有物体的名字

Unity编辑器扩展-第四集-获取物体的方法_第2张图片

 3.选中了所有的物体,但只改第一层物体的名称

Unity编辑器扩展-第四集-获取物体的方法_第3张图片

 4.来个有用的(选中的所有物体,按顺序起名)

Unity编辑器扩展-第四集-获取物体的方法_第4张图片

  二、 概述

有个类Selection,可以让你获取不同的物体

Selection.activeGameObject    //选择单个物体
//如果就非要多选,它认多选时选的第一个
Selection.gameObjects        //你选的所有物体都算
Selection.transforms            //你选的所有物体的辈分最大那个物体

 三、案例

1.改选中单个物体的名字

using UnityEditor;
public class Tools 
{
    [MenuItem("第四集/菌菌兹")]
    static void ChangeName() {
        Selection.activeGameObject.name = "菌菌兹";
    }
}

2.改选中所有物体的名字

using UnityEditor;
using UnityEngine;
public class Tools 
{
    [MenuItem("第四集/菌菌兹")]
    static void ChangeName() {
        foreach (GameObject obj in Selection.gameObjects)
        {
            obj.name = "菌菌兹";
        }
    }
}

 3.选中了所有的物体,但只改第一层物体的名称

using UnityEditor;
using UnityEngine;
public class Tools 
{
    [MenuItem("第四集/菌菌兹")]
    static void ChangeName() {
        foreach (Transform obj in Selection.transforms)
        {
            obj.name = "菌菌兹";
        }
    }
}

 4.选中的所有物体,按顺序起名

using UnityEditor;
using UnityEngine;
public class Tools 
{
    [MenuItem("第四集/菌菌兹")]
    static void ChangeName() {
        foreach (GameObject obj in Selection.gameObjects)
        {
            //GetSiblingIndex()是获取父亲的第几个孩子
            obj.name = obj.transform.GetSiblingIndex().ToString();
        }
    }
}

你可能感兴趣的:(#,Unity编辑器扩展,unity,编辑器,游戏引擎)