Unity 脚本 API 中文版 链接: https://docs.unity3d.com/cn/2019.4/ScriptReference/ 创建自定义窗口 public class MyWindow : EditorWindow//继承unity内置EditorWindow类 { [MenuItem("Window/我的自定义窗口")] private static void ShowWindow() { //1.用GetWindow方法创建的窗口,只可以打开一个 MyWindo…
[ExecutelnEditMode]     在EditMode下也可以执行脚本,Unity默认情况下,脚本只有运行时被执行,加上此属性后,不运行程序也能执行.与PlayMode不同的是函数不会不停的执行. [InitializeOnLoad]      在启动Unity的时候运行编辑器脚本. [Menultem(“  ”)]      在工具栏增加新的一列菜单. [ContextMenu(“  ”)]      添加命令给上下文菜单. [HideInInSpector]      隐藏Ins…
一.简介 最近马三为公司开发了一款触发器编辑器,对于这个编辑器策划所要求的质量很高,是模仿暴雪的那个触发器编辑器来做的,而且之后这款编辑器要作为公司内部的一个通用工具链使用.其实,在这款触发器编辑器之前,已经有一款用WinForm开发的1.0版触发器编辑器了,不过由于界面不太友好.操作繁琐以及学习使用成本较高,所以也饱受策划们的吐槽.而新研发的这款编辑器是直接嵌入在Unity中,作为Unity的拓展编辑器来使用的.当然在开发中,马三也遇到了种种的问题,不过还好,在同事的帮助下都一一解决了.本篇博…
IMGUI 介绍 所有关于 Editor 的相关 UI,包括 Inspector.Hierarchy.Window.Game 视图上动态创建的那些半透明 UI.还有 Scene 视图上可添加的辅助显示 UI,叫做 IMGUI,全称 Immediate Mode GUI.该名字来源于两类型的 UI 系统:immediate 和 retained. retained:当你设置好各种组件如 Text.Button 等的信息,或修改它们的相关属性后,这些组件的相关信息和改动就被保存(retained)下…
通过GUIStyle,可以自定义Unity编辑器的样式. GUIStyle可以new一个全新的实例,这样,需要自己处理所有自己需要的效果. GUIStyle还可以基于已经存在的实例new一个新的实例,这样,只需对原有的效果中不符合自己需求的进行修改. 就像这样: GUIStyle textStyle = new GUIStyle("HeaderLabel");textStyle.fontSize = 20; 一个基于 HeaderLabel  的字体显示风格,然后把字号放大成20: 然…
编辑器控制特效播放 Unity的动画编辑器不能预览粒子系统的播放,为了方便预览特效,设想制作一个预览特效的工具,通常一个特效有三种组件: - Animation - Animator - ParticleSystem 其中Unity编辑器在编辑器模式下会控制粒子的播放,所以这里控制特效播放的功能只能在播放模式下使用. 代码 using UnityEngine; using UnityEditor; using System; public class EffctPlayBackWin : Edi…
Unity编辑器 - 资源批处理工具基类 经常要对资源进行批处理,很多时候都是一次性的需求,于是弄个通用脚本. 工具是个弹出面板,处理过程有进度条,如下: 如图,子类只需要重写几个方法: using UnityEngine; using BatchTool; using UnityEditor; public class TestBatchTool : BatchToolBase { [MenuItem("BatchTool/test")] static void test() { G…
Unity编辑器整理 - 输入控件聚焦问题 EditorGUI的输入控件在聚焦后,如果在其他地方改变值,聚焦的框不会更新,而且无法取消聚焦,如下图: 在代码中取消控件的聚焦 取消聚焦的"时机"需要看具体情况,比如上图可以在按下"删除最后一个字符"按钮时取消,也可以通过按下ESC键或者的鼠标移出面板是取消聚焦... 代码: text = EditorGUILayout.TextField("text:", text); if (GUILayout.…
unity编辑器xml数据库插件 注:9月9日更新,其中MyXML.cs中有一句代码写错,查找功能失误,文中已经修改! 注:9月1日更新说明:xml存储结构,因为在用xml之前不知道正规的xml数据结构,所以是自创的结构.虽然也能完成功能,但是据说策划配置时不方便,所以为了统一,不使用节点的方式存储数据, 而是通过添加属性,设置属性的方式来存取数据. 直接上图看的清楚些: 我之前设计的格式: 现在的格式: 关于这部分的代码我会贴在最后. 程序和数据分离的意义我就不多说了,大家自己脑补或者百度.在…
Unity编辑器功能丰富易上手,其实编辑器提供的大多数菜单操作,在代码里面都是能够找到对应接口的,但是这些接口都没有对我们开放,怎么办? 很简单,直接使用反射调用即可. 首先使用Reflector或ILSpy将UnityEditor和UnityEngine进行反编译(有源码的可以直接查看源码更好),然后在里面找你需要的功能即可,unity的底层代码命名是非常规范的,多数功能都能直观的找到: 下图中是Hierarchy视图中一些操作函数,怎么样,是不是很直观: 怎么调用这些函数呢,下面展示了sta…