Unity3D Editor 扩展】的更多相关文章

官方教程:链接 EditorLayout API:链接 Handles API:链接 1.首先来个Inspector面板Editor的实现 要实现一个组件在Inspector中的Editor功能,首先需要写一个编辑器类: 要点: 1.继承Editor 2.放在Editor文件夹中 3.在类的头部写[CustomEditor(typeof(你要实现编辑的组件的类名))] 4.复写OnInspectorGUI函数(此函数仅在Inspector刷新时自动调用),然后在函数里实现编辑器功能的拓展实现.例…
http://gamerboom.com/archives/36432 作者:Richard Fine Unity3D的方便之处在于,它很容易地扩展编辑器套件.每款游戏都对加工有着不同的需求,可以快速地以完全集成的方法来构建这些内容并极大地提升开发速度. 目前有大量复杂的软件包提供以基本Unity功能套件为基础的复杂工具,从视觉脚本编辑器到编辑器内导航网格生成.但是,有关如何自行构建此类事物的程序说明却很少.我将在下文列举某些在自己的工作中总结的编辑器定制相关信息. Unity-Window(f…
前面写了四篇关于编辑器的: Unity3D编辑器扩展(一)——定义自己的菜单按钮 Unity3D编辑器扩展(二)——定义自己的窗口 Unity3D编辑器扩展(三)——使用GUI绘制窗口 Unity3D编辑器扩展(四)——扩展自己的组件 今天我们来讲解在编辑器扩展中我们常用的特性(Attribute)以及 Selection 类. 常用特性(Attribute): 1.InitializeOnLoad:监听Unity3D启动事件.需要将该脚本放在Editor文件夹下,Unity3D点击Play按钮…
前面已经写了三篇: Unity3D编辑器扩展(一)——定义自己的菜单按钮 Unity3D编辑器扩展(二)——定义自己的窗口 Unity3D编辑器扩展(三)——使用GUI绘制窗口 今天写第四篇,扩展自己的自定义组件. 通常我们使用继承自 Editor 的自定义编辑器类,来扩展自己的组件的检视面板和编辑器,并配合 CustomEditor 特性语法,附加该编辑器到一个自定义组件. 首先我们先定义一个组件 Player: using UnityEngine; public class Player :…
前面我们已经写了5篇关于编辑器的,这是第六篇,也是最后一篇: Unity3D编辑器扩展(一)——定义自己的菜单按钮 Unity3D编辑器扩展(二)——定义自己的窗口 Unity3D编辑器扩展(三)——使用GUI绘制窗口 Unity3D编辑器扩展(四)——扩展自己的组件 Unity3D编辑器扩展(五)——常用特性(Attribute)以及Selection类 一般来说,Windows应用程序中,对话框分为模态对话框和非模态对话框两种.二者的区别在于当对话框打开时,是否允许用户进行其他对象的操作.…
Unity3D 引擎的编辑器拥有很强的扩展性,用的好可以帮我们省很多事情.在这里记录下如何去扩展 Unity3D 的编辑器,定制属于我们自己的开发环境. 本篇主要讲解在 Unity3D 引擎的各个窗口添加我们自己的菜单按钮. 添加菜单按钮我们需要用到 MenuItem 特性: MenuItem 的三个重载: MenuItem(string itemName); MenuItem(string itemName, bool isValidateFunction); MenuItem(string…
Unity3D提供了强大的编辑器扩展机制,在项目开发中,如果可以将一些繁琐的工作放在编辑器扩展中进行,则会大大提高效率.本文对编辑器扩展进行了一些总结,希望对有兴趣编写编辑器扩展的开发人员有所帮助.当我们编写一个编辑器扩展时,一般可以从以下四个类继承: 1 . ScriptableObject   最常见的小功能扩展,一般不用窗口的编辑扩展,可以从这个类中继承,如以下代码所示: using UnityEngine; using UnityEditor; using System.Collecti…
“工欲善其事,必先利其器”Shader学习工具篇 最近一直忙于录制关于Shader入门的视频教程,其中一个反复的机械动作就是右键创建所需要的新Shader.悲剧的是每次打开的都是Unity3D默认的Shader菜单,看过我关于Shader体系分类的同学都知道默认菜单Shader都是干什么的,每次都要选择,每次都要删除一些多余的代码,并不是新手学习所需要的简单的Vertex frage shader和简单Surface shader. “身为一个程序员,必须有懒得气质,必须干掉这样的重复的操作!”…
编辑器扩展 1.添加菜单栏:把特性应用于静态方法 参数1:菜单名的空格后面是定义快捷键(单符号得用"_"开头,组合键%=Ctrl,#=Shift,&=Alt) 参数2:通过定义一个验证方法来控制是否启用菜单栏(如:当有选择到物体时,启用,否则禁用) 参数3:菜单栏中显示的顺序(优先级),按这个值可以分组(大概相差10就分一组) 可以为已有菜单添加子菜单,如Assets/MyTools,将显示在Assets菜单栏内,同时也会在Projiect窗口的右键菜单内显示. [MenuIt…
编辑器扩展只是在编辑项目中运行,发布出来是不会运行的. 固定创建一个文件夹Editor:所有的资源或者代码都不会被打包进去. 01.使用MenuItem添加菜单栏按钮 脚本不需要作为组件存在,可以不用继承MonoBehaviour 如何删除引用(每个函数调用的次数):工具-文本编辑器 如果需要显示行号: 工具-选项-文本编辑器-C#-行号 引用命名空间:using UnityEditor; [MenuItem("Tools/test/test1")]:在菜单栏会有Tools这一栏,点击…