WOW8论坛

 找回密码
 立即注册
搜索
热搜: 地形 技能 Lua
查看: 22|回复: 0

Unity编辑器编程:在编辑模式下,通过脚本来选中当前场景中的特定GameObject

[复制链接]
发表于 2018-7-11 21:21:02 | 显示全部楼层 |阅读模式
本帖最后由 皇家骑士 于 2018-7-11 21:46 编辑

下方代码需要被放在 Assets/Editor 目录下,名字建议与类名相同(SampleEditorScript.cs)。

本脚本会在菜单栏创建一个 Add Selection 选项,点击该选项之后可以将主摄像机和Canvas(如果有)添加到当前选中的GameObject列表中。

通过拓展这个脚本,可以实现自定义的 GameObject 搜索器,从而提高在 Hierarchy 窗口中的工作效率。
此外也可以通过拓展这个脚本来实现对GameObject的编组,从而实现在点击某个组之后,直接选中相关的所有GameObject(而不再需要手动挨个去选择)。

不过这里的示例脚本只包含基础功能演示,其他探索请自行进行。

[C#] 纯文本查看 复制代码
using System.Linq;
using UnityEditor;
using UnityEngine;

class SampleEditorScript {

  [MenuItem("Add Selection")]
  void Execute() {
      var old = Selection.objects.ToList();
      old.Add(Camera.main.gameObject);
      old.Add(FindObjectOfType<Canvas>().gameObject);
      Selection.objects = old.ToArray();
  }

}


参考:
* 官方问答 - Can I select an object in the hierarchy with code
* 官方文档 - API - UnityEditor
* 官方文档 - Manual - Advanced Editor Topics

相关帖子:
* Unity编辑器增强:使用脚本来同步设置多个相同Component的属性
* Unity技巧(重要的基本功能):给当前选中的GameObject编组保存,并在下次使用这些选中的组
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|WOW8论坛  

GMT+8, 2018-8-18 22:14 , Processed in 0.031621 second(s), 4 queries , File On.

WOW8 © 2018

Powered by Discuz! X3.3

快速回复 返回顶部 返回列表