Unity 编辑器选择器工具类Selection 常用函数和用法

点击封面跳转下载页面

简介

在Unity中,Selection类是一个非常有用的工具类,它提供了许多函数和属性,用于操作和管理编辑器中的选择对象。本文将介绍Selection类的常用函数和用法,并提供相应的示例代码。

静态属性

1. activeContext

功能: 获取或设置当前活动的上下文对象。

示例代码:

// 获取当前活动的上下文对象
Object activeContext = Selection.activeContext; // 设置当前活动的上下文对象
Selection.activeContext = activeContext;

2. activeGameObject

功能: 获取或设置当前活动的游戏对象。

示例代码:

// 获取当前活动的游戏对象
GameObject activeGameObject = Selection.activeGameObject; // 设置当前活动的游戏对象
Selection.activeGameObject = activeGameObject;

3. activeInstanceID

功能: 获取或设置当前活动的实例ID。

示例代码:

// 获取当前活动的实例ID
int activeInstanceID = Selection.activeInstanceID; // 设置当前活动的实例ID
Selection.activeInstanceID = activeInstanceID;

4. activeObject

功能: 获取或设置当前活动的对象。

示例代码:

// 获取当前活动的对象
Object activeObject = Selection.activeObject; // 设置当前活动的对象
Selection.activeObject = activeObject;

5. activeTransform

功能: 获取或设置当前活动的变换组件。

示例代码:

// 获取当前活动的变换组件
Transform activeTransform = Selection.activeTransform; // 设置当前活动的变换组件
Selection.activeTransform = activeTransform;

6. assetGUIDs

功能: 获取当前选择的资源的GUID数组。

示例代码:

// 获取当前选择的资源的GUID数组
string[] assetGUIDs = Selection.assetGUIDs; // 遍历打印每个资源的GUID
foreach (string guid in assetGUIDs)
{
Debug.Log("Asset GUID: " + guid);
}

7. count

功能: 获取当前选择的对象数量。

示例代码:

// 获取当前选择的对象数量
int count = Selection.count; // 打印当前选择的对象数量
Debug.Log("Selection count: " + count);

8. gameObjects

功能: 获取当前选择的游戏对象数组。

示例代码:

// 获取当前选择的游戏对象数组
GameObject[] gameObjects = Selection.gameObjects; // 遍历打印每个游戏对象的名称
foreach (GameObject obj in gameObjects)
{
Debug.Log("Game Object Name: " + obj.name);
}

9. instanceIDs

功能: 获取当前选择的实例ID数组。

示例代码:

// 获取当前选择的实例ID数组
int[] instanceIDs = Selection.instanceIDs; // 遍历打印每个实例ID
foreach (int instanceID in instanceIDs)
{
Debug.Log("Instance ID: " + instanceID);
}

10. objects

功能: 获取当前选择的对象数组。

示例代码:

// 获取当前选择的对象数组
Object[] objects = Selection.objects; // 遍历打印每个对象的名称
foreach (Object obj in objects)
{
Debug.Log("Object Name: " + obj.name);
}

11. transforms

功能: 获取当前选择的变换组件数组。

示例代码:

// 获取当前选择的变换组件数组
Transform[] transforms = Selection.transforms; // 遍历打印每个变换组件的位置
foreach (Transform transform in transforms)
{
Debug.Log("Transform Position: " + transform.position);
}

静态方法

1. Contains

功能: 检查给定的对象是否在当前选择中。

示例代码:

// 检查游戏对象是否在当前选择中
bool contains = Selection.Contains(gameObject); // 打印结果
Debug.Log("Contains: " + contains);

2. GetFiltered

功能: 根据指定的过滤器条件获取当前选择的对象。

示例代码:

// 获取当前选择的所有MeshRenderer组件
MeshRenderer[] meshRenderers = Selection.GetFiltered<MeshRenderer>(SelectionMode.Deep); // 遍历打印每个MeshRenderer的材质数量
foreach (MeshRenderer renderer in meshRenderers)
{
Debug.Log("Material Count: " + renderer.sharedMaterials.Length);
}

3. GetTransforms

功能: 获取当前选择的所有变换组件。

示例代码:

// 获取当前选择的所有变换组件
Transform[] transforms = Selection.GetTransforms(SelectionMode.TopLevel | SelectionMode.OnlyUserModifiable); // 遍历打印每个变换组件的名称
foreach (Transform transform in transforms)
{
Debug.Log("Transform Name: " + transform.name);
}

4. SetActiveObjectWithContext

功能: 设置当前活动的对象和上下文。

示例代码:

// 设置当前活动的对象和上下文
Selection.SetActiveObjectWithContext(gameObject, context); // 打印当前活动的对象和上下文
Debug.Log("Active Object: " + Selection.activeObject);
Debug.Log("Active Context: " + Selection.activeContext);

以上是Selection类中的常用函数和用法。通过使用这些函数和属性,您可以方便地操作和管理编辑器中的选择对象。详细的函数说明和更多用法示例,

参考文档:Unity官方文档


我的技术文章中可能存在的错误向您表示诚挚的歉意。我努力确保提供准确可靠的信息,但由于技术领域的不断变化,错误难以避免。如果您发现了错误或有任何疑问,请与我联系。我将竭尽全力纠正错误并提供更准确的信息。

再次向您表示最诚挚的歉意,我将更加谨慎地审查和更新文章,以提供更好的阅读体验和准确的技术信息。

谢谢您的理解和支持。

Unity 编辑器选择器工具类Selection 常用函数和用法的更多相关文章

  1. web报表工具FineReport常用函数的用法总结(日期和时间函数)

    web报表工具FineReport常用函数的用法总结(日期和时间函数) 说明:凡函数中以日期作为参数因子的,其中日期的形式都必须是yy/mm/dd.而且必须用英文环境下双引号(" " ...

  2. Java中math类的常用函数

    Java中math类的常用函数 在 Java 中 Math 类封装了常用的数学运算,提供了基本的数学操作,如指数.对数.平方根和三角函数等 只要在源文件的顶部加上下面这行代码就不必在数学方法名和常量名 ...

  3. java 多线程总结篇2之——Thread类及常用函数

    此片文章主要总结的是Thread类及相关的基础概念和API,首先需要厘清线程调度中的几个基本概念: 一.线程调度的基本方法 1.调整线程优先级:Java线程有优先级,优先级高的线程会获得较多的运行机会 ...

  4. view之Scroller工具类和GestureDetector的简单用法

    转载:http://ipjmc.iteye.com/blog/1615828 Android里Scroller类是为了实现View平滑滚动的一个Helper类.通常在自定义的View时使用,在View ...

  5. [Android自定义控件] Android Scroller工具类和GestureDetector的简单用法

    转载:http://ipjmc.iteye.com/blog/1615828 Android里Scroller类是为了实现View平滑滚动的一个Helper类.通常在自定义的View时使用,在View ...

  6. Python学习笔记(二):条件控制语句与循环语句及常用函数的用法

    总结的内容: 1.条件控制语句 2.while循环语句 3.for循环语句 4.函数的用法 一.条件控制语句 1.介绍 Python条件语句是通过一条或多条语句的执行结果(True或者False)来决 ...

  7. web报表工具FineReport常用函数的用法总结(报表函数)

    说明:本次总结中,凡是以tableName或viewName作为参数因子的.函数在调用的时候均按照先从私有数据源中查找,然后再从公有数据源中查找的顺序. CLASS CLASS(object):返回o ...

  8. 输入输出流类iostream常用函数解析

    原创作品,转载请注明出处:http://www.cnblogs.com/shrimp-can/p/5657192.html 一.成员类型 1. ios::fmtflags: 格式标志,常用来设置输出的 ...

  9. Qt QString类及常用函数功能详解

    QString 是 Qt 编程中常用的类,除了用作数字量的输入输出之外,QString 还有很多其他功能,熟悉这些常见的功能,有助于灵活地实现字符串处理功能. QString 存储字符串釆用的是 Un ...

  10. java报表工具FineReport常用函数的用法总结(文本和日期函数)

    文本函数 CHAR CHAR(number):根据指定数字返回对应的字符.CHAR函数可将计算机其他类型的数字代码转换为字符. Number:用于指定字符的数字,介于1Number:用于指定字符的数字 ...

随机推荐

  1. 深入理解 slab cache 内存分配全链路实现

    本文源码部分基于内核 5.4 版本讨论 在经过上篇文章 <从内核源码看 slab 内存池的创建初始化流程> 的介绍之后,我们最终得到下面这幅 slab cache 的完整架构图: 本文笔者 ...

  2. 代码打包的可视化数据分析图: webpack-bundle-analyzer 的使用

    先看webpack-bundle-analyzer的效果图(官方效果图): 通过使用webpack-bundle-analyzer可以看到项目各模块的大小,可以按需优化 1.先安装 npm insta ...

  3. 2020-10-27:go中select的执行流程是什么?

    福哥答案2020-10-27: ***[2020-10-27:go中select的执行流程是什么?](https://bbs.csdn.net/topics/398044569)

  4. 2022-03-18:arr数组长度为n, magic数组长度为m 比如 arr = { 3, 1, 4, 5, 7 },如果完全不改变arr中的值, 那么收益就是累加和 = 3 + 1 + 4 +

    2022-03-18:arr数组长度为n, magic数组长度为m 比如 arr = { 3, 1, 4, 5, 7 },如果完全不改变arr中的值, 那么收益就是累加和 = 3 + 1 + 4 + ...

  5. 2022-02-02:最接近的二叉搜索树值 II。 给定一个不为空的二叉搜索树和一个目标值 target,请在该二叉搜索树中找到最接近目标值 target 的 k 个值。 注意: 给定的目标值 ta

    2022-02-02:最接近的二叉搜索树值 II. 给定一个不为空的二叉搜索树和一个目标值 target,请在该二叉搜索树中找到最接近目标值 target 的 k 个值. 注意: 给定的目标值 tar ...

  6. 2021-10-07:将有序数组转换为二叉搜索树。给你一个整数数组 nums ,其中元素已经按 升序 排列,请你将其转换为一棵 高度平衡 二叉搜索树。高度平衡 二叉树是一棵满足「每个节点的左右两个子树

    2021-10-07:将有序数组转换为二叉搜索树.给你一个整数数组 nums ,其中元素已经按 升序 排列,请你将其转换为一棵 高度平衡 二叉搜索树.高度平衡 二叉树是一棵满足「每个节点的左右两个子树 ...

  7. 安装vue cli3以及配置环境 镜像下载

    安装vue cli3以及配置环境 镜像下载 1.下载安装Node.js 安装vue cli3之前需要先安装Node.js,方便对vue进行下载 node.js的下载与安装方法在隔壁哟 地址:https ...

  8. < Python全景系列-5 > 解锁Python并发编程:多线程和多进程的神秘面纱揭晓

    欢迎来到我们的系列博客<Python全景系列>!在这个系列中,我们将带领你从Python的基础知识开始,一步步深入到高级话题,帮助你掌握这门强大而灵活的编程语法.无论你是编程新手,还是有一 ...

  9. 机器学习数据顺序随机打乱:Python实现

      本文介绍基于Python语言,实现机器学习.深度学习等模型训练时,数据集打乱的具体操作. 1 为什么要打乱数据集   在机器学习中,如果不进行数据集的打乱,则可能导致模型在训练过程中出现具有&qu ...

  10. 为什么会出现 setTimeout 倒计时误差

    setTimeout 倒计时误差的出现主要与 JavaScript 的事件循环机制和计时器的执行方式有关. 在 JavaScript 中,事件循环是用于管理和调度代码执行的机制.setTimeout ...