unity编译器 Selection,AssetDatabase,EditorUtility (Selection篇)

学习目标:

今天学习Selection类 

unity Selection类 他负责你的选择

朋友们我也只是写一些常用的因为关于它的用法比较多所以我也只需要掌握常用的至于其他的大家可以去官方查找API 

谢谢大家的观看


学习内容:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEditor;

public class MySelection 
{
  [MenuItem("Selection/activeObject")]
    static void ActiveObject()
    {
        //可以选择包含Object除了目录
        Debug.Log(Selection.activeObject);//返回类型Object 除了目录选择了目录放回null
    }
    [MenuItem("Selection/ActiveGameObject")]
    static void ActiveGameObject()
    {
        //选择包含GameObject
        Debug.Log(Selection.activeGameObject);//返回类型GameObject
    }
    [MenuItem("Selection/ActiveTransform")]
    static void ActiveTransform()
    {
        //选择包含Transform
        Debug.Log(Selection.activeTransform);//返回类型Transform
    }
    [MenuItem("Selection/Objects")]
    static void Objects()
    {
        //可以选择多个包含Object
        foreach (var item in Selection.objects)//返回object类型的数组
        {
            Debug.Log(item);
        }
    }
    [MenuItem("Selection/Transforms")]
    static void Transforms()
    {
        //可以选择多个包含Transforms
        foreach (var item in Selection.transforms)//返回Transforms类型的数组
        {
            Debug.Log(item);
        }
    }
    [MenuItem("Selection/GameObjects")]
    static void GameObjects()
    {
        //可以选择多个包含GameObject
        foreach (var item in Selection.gameObjects)//返回GameObject类型的数组
        {
            Debug.Log(item);
        }
    }
    [MenuItem("Selection/Contains")]
    static void Contains()
    {
        Debug.Log(Selection.activeInstanceID);//返回ID
       // 参数为ID
       if (Selection.Contains(16048))//选择的物体的ID是否和自己要的ID一样
        {
            Debug.Log("aaa");
        }
    }
    [MenuItem("Selection/InstanceIDs")]
    static void InstanceIDs()
    {
        //Selection.instanceIDs返回选择所有物体的ID
        foreach (var item in Selection.instanceIDs)
        {
            Debug.Log(item);
        }
    }
    [MenuItem("Selection/GetFiltered")]
    static void GetFiltered()
    {
        var games= Selection.GetFiltered<GameObject>(SelectionMode.Assets);//SelectionMode.Assets 在Assets目录下所有包含GameObject  (GameObject可以换自己想要的类型)
                                                                           //SelectionMode.Deep  可以把目录最底层的GameObject找到
        foreach (var item in games)
        {
            Debug.Log(item.name);
        }
    }
    [MenuItem("Selection/GetTransforms")]
    static void GetTransforms()
    {
        //类型已定死只能获取Transform
        var Transforms = Selection.GetTransforms(SelectionMode.Assets);//SelectionMode.Assets 在Assets目录下所有包含GameObject  (GameObject可以换自己想要的类型)
                                                                       //SelectionMode.Deep  可以把目录最底层的GameObject找到
        foreach (var item in Transforms)
        {
            Debug.Log(item.name);
        }
    }

}

猜你喜欢

转载自blog.csdn.net/qq_57896821/article/details/121255847
今日推荐