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

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

https://github.com/AlianBlank/download.unity.com

点击封面跳转下载页面

简介

在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官方文档。


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

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

谢谢您的理解和支持。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/53359.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

该选择WPF 还是 Winform?

WPF和WinForms都是.NET平台下的桌面应用程序开发框架&#xff0c;它们各有特点&#xff0c;适用于不同的场景和需求。下面是对WPF和WinForms的一些比较和优劣势&#xff1a;WPF&#xff08;Windows Presentation Foundation&#xff09;&#xff1a;WPF具有强大的图形渲染能力&…

QT图形视图系统 - 使用一个项目来学习QT的图形视图框架 - 终篇

QT图形视图系统 - 终篇 接上一篇&#xff0c;我们需要继续完成以下的效果&#xff1b; 先上个效果图&#xff1a; 修改背景&#xff0c;使之整体适配 上一篇我们绘制了标尺&#xff0c;并且我们修改了放大缩小和对应的背景&#xff0c;整体看来&#xff0c;我们的滚动条会和…

DoIP学习笔记系列:(四)用CAPL脚本读取DID的关键点

文章目录 1. 如何在CAPL中读取DID?1.1 避坑如何新建CAPL工程,在此不再赘述,本章主要分享一下如何在CAPL中调用DoIP接口、diag接口进行DoIP和诊断的测试。 1. 如何在CAPL中读取DID? 通常在实际项目中,会有很多DID,各种版本号、各种观测量,如果手动点,显然很麻烦,如果要…

聊聊混合动力汽车和纯电骑车的优势和劣势

混合动力汽车和纯电动骑车是两种不同的交通工具&#xff0c;它们都有各自的优势和劣势。本文将分别探讨混合动力汽车和纯电动骑车的优势和劣势&#xff0c;并为文章提供三个备选的好听的标题。 混合动力汽车是一种结合了内燃机和电动机的汽车&#xff0c;它可以同时利用燃油和电…

在excel中整理sql语句

数据准备 CREATE TABLE t_test (id varchar(32) NOT NULL,title varchar(255) DEFAULT NULL,date datetime DEFAULT NULL ) ENGINEInnoDB DEFAULT CHARSETutf8mb4; INSERT INTO t_test VALUES (87896cf20b5a4043b841351c2fd9271f,张三1,2023/6/8 14:06); INSERT INTO t_test …

leetcode----JavaScript 详情题解(4)

目录 2722. 根据 ID 合并两个数组 2723. 添加两个 Promise 对象 2724. 排序方式 2725. 间隔取消 2726. 使用方法链的计算器 2727. 判断对象是否为空 2624. 蜗牛排序 2694. 事件发射器 2722. 根据 ID 合并两个数组 现给定两个数组 arr1 和 arr2 &#xff0c;返回一个新…

二叉树进阶版(C)

文章目录 1.树1.1概念1.2相关定义1.3 表示&#xff08;左孩子右兄弟&#xff09; 2.二叉树2.1概念2.2特殊的二叉树1. 满二叉树&#xff1a;2. 完全二叉树&#xff1a; 2.3二叉树的性质2.4练习 3.二叉树的存储结构1. 顺序存储2. 链式存储 4.完全二叉树的代码实现4.1堆的介绍1.堆…

“三个高度”写作提纲30例

1.充分把握“三个高度” 全面推进全过程人民民主的基层实践 从坚定政治信仰的高度坚持正确方向 从坚定制度自信的高度把握完整链条 从确保落地见效的高度强化组织保障 2. “三个高度”扎实推进安全生产工作 一是着眼大局&#xff0c;高度负责。 二是立足长远&#xff0c;高…

Flutter 实现按位置大小比例布局的控件

文章目录 前言一、如何实现&#xff1f;1、数值转成分数2、RowFlexible布局横向3、ColumnFlexible布局纵向 二、完整代码三、使用示例1、基本用法2、四分屏3、六分屏4、八分屏5、九分屏6、414分屏 总结 前言 做视频监控项目时需要需要展示多分屏&#xff0c;比如2x2、3x3、414…

Hadoop 之 Hive 4.0.0-alpha-2 搭建(八)

Hadoop 之 Hive 搭建与使用 一.Hive 简介二.Hive 搭建1.下载2.安装1.解压并配置 HIVE2.修改 hive-site.xml3.修改 hadoop 的 core-site.xml4.启动 三.Hive 测试1.基础测试2.建库建表3.Java 连接测试1.Pom依赖2.Yarm 配置文件3.启动类4.配置类5.测试类 一.Hive 简介 Hive 是基于…

flink+kafka+doris+springboot集成例子

目录 一、例子说明 1.1、概述 1.1、所需环境 1.2、执行流程 二、部署环境 2.1、中间件部署 2.1.1部署kakfa 2.1.1.1 上传解压kafka安装包 2.1.1.2 修改zookeeper.properties 2.1.1.3 修改server.properties 2.1.1.3 启动kafka 2.1.2、部署flink 2.1.2.1 上传解压f…

cicd实验

系列文章目录 文章目录 系列文章目录一、1.2. 二、安装并使用1.安装gitlab2.//Jenkins安装3. 总结 一、 1. 2. 二、安装并使用 需要三台服务器一台安装gitlab 192.168.169.10 第二台负责 安装jenkins 192.168.169.20 第三台是负责业务 192.168.169.30 1.安装gitlab yum in…