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. Langchain框架 prompt injection注入

    Langchain框架 prompt injection注入 Prompt Injection 是一种攻击技术,黑客或恶意攻击者操纵 AI 模型的输入值,以诱导模型返回非预期的结果 Langchain ...

  2. celery+Rabbit MQ简单的Demo

    介绍 一个简单的celery + rabbitmq 的搭建例子,用于记录 Celery 异步处理框架, 安装命令 pip install celery RabbitMQ 消息中间件,用来做队列 安装配 ...

  3. ctfshow菜狗杯(一)

    CTFshow菜狗杯,web签到 传参. 需要注意的是传参的时候要对中文字符进行编码输出. 得到flag. 第二关 come-to_s1gn 打开页面源代码 这里好像给了一半的flag,另一半好像说在 ...

  4. 前端Vue项目打包性能优化方案

    一.前言 Vue 框架通过数据双向绑定和虚拟 DOM 技术,帮我们处理了前端开发中最脏最累的 DOM 操作部分, 我们不再需要去考虑如何操作 DOM 以及如何最高效地操作 DOM:但 Vue 项目中仍 ...

  5. 2023-05-12:存在一个由 n 个节点组成的无向连通图,图中的节点按从 0 到 n - 1 编号, 给你一个数组 graph 表示这个图, 其中,graph[i] 是一个列表,由所有与节点 i

    2023-05-12:存在一个由 n 个节点组成的无向连通图,图中的节点按从 0 到 n - 1 编号, 给你一个数组 graph 表示这个图, 其中,graph[i] 是一个列表,由所有与节点 i ...

  6. 2023-04-06:拥抱Golang,优化FFmpeg音频编码器,探究encode_audio.c的内部结构。

    2023-04-06:拥抱Golang,优化FFmpeg音频编码器,探究encode_audio.c的内部结构. 答案2023-04-06: 见moonfdd/ffmpeg-go库. 这段代码是一个示 ...

  7. 在docker容器里,ffmpeg给视频文件内嵌字幕文件,不生效,如何解决?

    用ffmpeg命令,发现执行成功,但视频文件就是没有字幕.看不出问题出现在什么地方.后来直接用ffmpeg添加水印命令测试,发现是缺少字体文件,如下图所示: 报Fontconfig error: Ca ...

  8. 2021-04-03:给定两个字符串str1和str2,想把str2整体插入到str1中的某个位置,形成最大的字典序,返回字典序最大的结果。

    2021-04-03:给定两个字符串str1和str2,想把str2整体插入到str1中的某个位置,形成最大的字典序,返回字典序最大的结果. 福大大 答案2021-04-03: 1.暴力法. 2.DC ...

  9. 2022-03-03:课程表 III。 这里有 n 门不同的在线课程,按从 1 到 n 编号。给你一个数组 courses ,其中 courses[i] = [durationi, lastDayi]

    2022-03-03:课程表 III. 这里有 n 门不同的在线课程,按从 1 到 n 编号.给你一个数组 courses ,其中 courses[i] = [durationi, lastDayi] ...

  10. Vue 全局避免按钮重复点击

    这里用到的 Vue.directive 自定义指令 自定义指令是对普通DOM元素进行的底层操作,它是一种有效的的补充和扩展,不仅可以用于定义任何的dom操作,并且是可以复用的 在 main.js 中写 ...