Unity 编辑器开发实战【Editor Window】- Replacer 替换器
如图所示,假如一个模型被大量的规整的摆放在场景中,当我们修改了这个模型需要替换时,需要将新模型按照如上位置进行逐个替换比较麻烦,下面介绍的工具Replacer可以很方便的进行批量替换:
在Hierarchy层级窗口选中所有需要替换的模型,然后指定用来替换的模型,点击Replace进行替换
工具代码如下:
using UnityEditor;
using UnityEngine;namespace SK.Framework
{/// <summary>/// 替换器/// </summary>public class Replacer : EditorWindow{[MenuItem("SKFramework/Replacer")]public static void Open(){var window = GetWindow<Replacer>("Replacer");window.maxSize = new Vector2(300f, 60f);window.minSize = new Vector2(300f, 60f);window.Show();}private GameObject target;private void OnGUI(){int count = Selection.gameObjects.Length;GUILayout.Label(string.Format("Count: {0}", count));GUILayout.BeginHorizontal();GUILayout.Label("Replacer:", GUILayout.Width(100f));target = EditorGUILayout.ObjectField(target, typeof(GameObject), true) as GameObject;GUILayout.EndHorizontal();GUI.enabled = target != null;if (GUILayout.Button("Replace")){if (EditorUtility.DisplayDialog("提醒", string.Format("将使用{0}替换所有选中的物体,是否确认?", target.name), "确认", "取消")){for (int i = 0; i < Selection.gameObjects.Length; i++){var go = Selection.gameObjects[i];var instance = Instantiate(target);instance.transform.position = go.transform.position;instance.transform.rotation = go.transform.rotation;instance.transform.SetParent(go.transform.parent);DestroyImmediate(go.gameObject);i--;}}}}private void OnSelectionChange(){Repaint();}}
}
Unity 编辑器开发实战【Editor Window】- Replacer 替换器相关推荐
- Unity 编辑器开发实战【Custom Editor】- FSM Editor
本文介绍如何为FSM有限状态机模块实现一个自定义编辑器面板,FSM的详细代码在上一篇文章中有介绍,链接地址: 在Unity中构建FSM有限状态机 下面是最终效果: 首先,自定义一个编辑器面板,需要用到 ...
- Unity 编辑器开发实战【Custom Editor】- AudioDatabase Editor 音频库编辑器
本文实现一个音频库的自定义编辑器,效果如图: 开始实现之前,首先简单介绍该音频库模块,音频库类Audio Database继承自Scriptable Object类,是一个可配置的资源文件: 包含的内 ...
- Unity 编辑器开发实战【Editor Window】- BlendShape调试工具
Skin Mesh Renderer组件编辑器本身包含BlendShape的调试滑动条,但是当数量较多想要重置时较为麻烦,下面介绍的工具添加了这些调试滑动条的同时,增加了一键重置的功能: 代码如下: ...
- Unity 编辑器开发实战【Editor Window】- 关于提高Proto通信协议文件生成效率的考虑
在项目中使用Protobuf作为通信协议时,需要用到protogen.exe程序将.proto文件编译成.cs文件再导入Unity工程中使用: 例如我们创建一个ProtoTest.proto文件: 然 ...
- Unity 编辑器开发实战【Custom Editor】- 为UI视图制作动画编辑器
为了更方便地为UI视图添加动画,将动画的编辑功能封装在了UI View类中,可以通过编辑器快速的为视图编辑动画.动画分为两种类型,一种是Unity中的Animator动画,该类型直接通过一个字符串类型 ...
- Unity编辑器开发(五):实战、开发一个AB包编辑器工具
前言 在我们上一篇(Unity编辑器开发(四):实战.开发一个AB包编辑器工具)的结尾,我们拥有了如下图中那样的一个编辑器窗口: 接下来我们来完成最后部分,也就是包括创建AB包,清理AB包,删除AB包 ...
- 《Unity虚拟现实开发实战》——第1章,第1.8节小结
本节书摘来自华章出版社<Unity虚拟现实开发实战>一书中的第1章,第1.8节小结,作者[美] 乔纳森·林诺维斯,更多章节内容可以访问云栖社区"华章计算机"公众号查看. ...
- 《Unity虚拟现实开发实战》——第3章,第3.6节虚拟现实设备的运行原理
本节书摘来自华章出版社<Unity虚拟现实开发实战>一书中的第3章,第3.6节虚拟现实设备的运行原理,作者[美] 乔纳森·林诺维斯,更多章节内容可以访问云栖社区"华章计算机&qu ...
- Unity编辑器开发——组件聚焦问题
个人学习笔记,如有错误.疑问.建议,欢迎留言. 声明:本文不得以任何形式进行转载. 前言:在进行Unity编辑器开发时,经常遇到一个组件的聚焦问题:可以更改的组件,如果通过其他方式对其进行更新(即不 ...
- Unity编辑器开发:2020更新
正所谓:人靠衣装,佛靠金装.学会插件开发,成就大神人生. 欢迎关注公众号:雷潮课堂 编辑器开发 一.课程内容 1-1本课程目标 1-2插件开发的起因 1-3插件的作用 二.菜单项制作 2-1菜单项(M ...
最新文章
- springcloud(三):服务提供与调用
- java和python哪个好学-学java好还是Python好?
- Sendmail+dovecot+saslauth+rainloop
- hihoCoder 1312:搜索三·启发式搜索(A* + 康托展开)
- android roboto字体下载,Android字体设置及Roboto字体使用方法
- [linux驱动]linux驱动模块
- JAVA Drp项目实战—— Unable to compile class for JSP 一波三折
- 对于C# 中事件的参数(object sender, EventArgs e)
- 技嘉h310主板前置音频没声音_电脑前置插孔没声音 前置音频没声音解决方法
- 计算机联锁静态数据表,计算机联锁功能.doc
- mstar v56几路hdmi_TCL MStar常用升级方法图文教程
- 冰桶挑战:一个吊炸天的病毒式营销案例剖析
- 【这很AI】斯坦福新人工智能系统曝光:用算法优化难民工作分配
- BGP带宽是什么意思
- 【Babel】1186- 保姆级教学!这次一定学会 Babel 插件开发!
- 知乎文章如何复制下来
- 大图片显示在客户端,被压扁失真的问题
- 闭关修炼(二十二)session和cookie原理
- MVC5 + EF6 + Bootstrap3 (14) 分部视图PartialView
- 法律人如何使用python_执业10年,我见过太多法律人掉进这个大坑!
热门文章
- An improved genetic algorithm for the flexible job shop scheduling problem with multiple time constr
- linux服务器鼠标键盘没反应,Fedora 键盘鼠标输入没反应及解决办法
- 新浪邮箱界面登录按钮效果制作
- 弗洛伊德学说中的本我、自我和超我
- 新增收货地址管理 html,关于“收货地址”的二三事
- 计算机图形学 期中大作业 俄罗斯方块
- 服务器2003系统密钥,服务器2003系统密钥
- HTML---网页编程(1)
- Win7 Python3.5安装Scrapy
- pyqt 取鼠标处文字_侧裙可拆按键随心装,黑爵GTi模块化游戏鼠标评测