unity插件开发——Selection
Selection是一个静态类,它的主要功能是获取在project窗口中鼠标选择的对象或者是inspector窗口的当前显示的对象。它的字段有
activeGameObject
activeInstanceID
activeObject
activeTransform
gameObjects
instanceIDs
objects
transforms
其中activeGameObject和activeTransform是inspector窗口的当前显示对象对应的GameObject和Transform。加入当前并非是一个GameObject,那么activeGameObject为空,activeTransform也是一样。activeInstanceID是选择文件在工程中的唯一ID,通过这个ID可以找到唯一对应的文件。objects是多选情况下得到的所有选择的物体,这些物体可以是各种类型,一般地,无法解析的物体,如文件夹,普通的文件,默认为Object类型。相比gameObjects,官方更加推荐使用transforms,它们的作用仅仅是对选择的所有物体做类型匹配的筛选,返回筛选之后的结果。
在这些字段中,用得比较多的是activeObject,objects,因为是基类,所以我们可以做各种判定和处理。比如:
var objs=Selection.objects;
foreach(var obj in objs)
{
if(obj is GameObject)
Debug.log(obj.name);
}
上面的代码就是遍历选择的所有物体,如果该物体为GameObject(Prefab也是GameObject),输出该物体的名称。
另外,Selection提供Contains方法来判断选择的物体做是否包含了某个物体,也提供GetFiltered方法来做筛选。
unity插件开发——Selection的更多相关文章
- unity插件开发——一个例子:简单的svn集成
在unity开发过程中,通常我们习惯性地在Windows操作系统下使用svn进行版本管理,而每次提交更新,都需要回到文件夹下的这种操作让人无法忍受.是不是可以集成svn到unity中呢?查了一圈uni ...
- unity插件开发——AssetDatabase
AssetDatebase也是一个静态类,他的作用是管理整个工程的所有文件(一般成为“资产”).直观地说就是管理整个project窗口中的所有内容,比如,你可以增加.删除.修改文件等等. 这里有几个常 ...
- unity插件开发——MenuItem
有unity中的菜单栏是我们经常使用到的地方,如下图: MenuItem的作用就是增加一个自己的菜单 使用方法: 在工程中Assets目录下任意一个Editor目录(以后简称Editor目录,如果不存 ...
- unity插件开发
1.简单的svn集成: 查询svn的文档可以知道svn提供各种命令符操作.因此,原理非常简单,利用命令符操作调用svn即可.代码也非常简单: 更新:Process.Start("Tortoi ...
- Unity3d 内置图形界面系统(Editor GUI)
一.说在前面的 1.unity内置的ui系统,无论是在性能的表现上.功能的强大性上.制作复杂ui的便捷性上,还是其它的一些方面都不如一些第三方的插件来的好,如:NGUI和DF-GUI(PS: 后者比前 ...
- Eclipse插件开发中的选择监听机制(Selection Provider-Listener)
Eclipse插件开发中的选择监听机制(Selection Provider-Listener) 监听机制是eclipse插件开发或rcp应用开发中经常使用的技术,比方点击TableViewer或Tr ...
- unity编辑器扩展_04(使用Selection获取选择的游戏物体)
代码: [MenuItem("Tools/GetChance", false, 1)] static void GetChance() { if (Sel ...
- 【原创】记一次Project插件开发
一.开发背景 最近在使用微软的Office Project 2010 进行项目管理,看到排的满满的计划任务,一个个地被执行完毕,还是很有成就感的.其实,不光是在工作中可以使用Project进行项目进度 ...
- Unity游戏开发中的内存管理_资料
内存是手游的硬伤——Unity游戏Mono内存管理及泄漏http://wetest.qq.com/lab/view/135.html 深入浅出再谈Unity内存泄漏http://wetest.qq.c ...
随机推荐
- Vuex原来可以这样上手
在Mvc模式大行其道的今天,后端通过各种Mvc框架实现视图与数据模型的隔离,而前端这方面也发展迅速.vue实现了Dom与viewModel双向绑定,使其视图的更新影响模型,模型的更新影响视图,你会不会 ...
- VS2008 + WDK 配置 及其编译错误
VS2008 + SP1 + Win7 X64 1. 安装WDK,并配置系统环境变量:WDKROOT-D:\WinDDK\7600.16385.1 2. 启动VS2005,在菜单栏“工具”-“选项”内 ...
- 读书笔记 effective c++ Item 16 成对使用new和delete时要用相同的形式
1. 一个错误释放内存的例子 下面的场景会有什么错? std::]; ... delete stringArray 一切看上去都是有序的.new匹配了一个delete.但有一些地方确实是错了.程序的行 ...
- extjs 基础部分
创建对象的方法: 使用new 关键字创建对象. new classname ([config]) 使用Ext.create方法创建. Ext.create(classname,[config]) n ...
- C语言的基本概念
1.经典入门:hello world #include <stdio.h> int main(void) { printf("hello world.\n"); ; } ...
- Sublime Text3安装、注册、插件安装教程
在前端开发中,有很多软件供我们使用:大名鼎鼎的WebStorm,老而弥坚的Dreamweaver,后起之秀Hbuilder,还有小清新Sublime Text.......等等.作为新手, ...
- php表单修改数据
(接前面写的) 第一个页面xiugai.php <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" ...
- VUE2.0实现购物车和地址选配功能学习第二节
第二节 创建VUE实例 购物车项目计划: 1.创建一个vue实例 2.通过v-for指令渲染产品数据 3.使用filter对金额和图片进行格式化 4.使用v-on实现产品金额动态计算 5.综合演示 ① ...
- 理解margin负值
效果 上和左方的margin负值使元素向上和左方向移动,如果该元素position不是absolute或fixed,这还会导致之后的元素也向上,左移 下和右方的margin负值会缩小下和右方的空间,使 ...
- MES设备支持快速完工
1) 在菜单界面点击指定快速键 2) 初始界面 3) 一般流程 a) 扫描任务单号,即可完成工序加工 a1) 获取任务单工序的条件 按任务单卡号或配模的模具卡号搜索行状态为O的工序 a2) 工序完工操 ...