一个引擎,最重要的就是工具,工具除了提升开发速度,提供可视化操作环境以外,还带了容错功能. 它使得大家的工作局限在一定的范围内,比如一个变量的配置,或者是一些类型的选择. 使用编辑器,使得既使不太明白的人,也能快速找到方法.如果是采用手工配置的话,那每一个东西需具备相当完善的文档,文件加载时,得提供高强度的错误效验和错误提示功能. 否则很容易陷入困境. UNITY3D的IDE本身的强大,除了表现在其提供的强大功能外,更让人喜欢的,是它高度的可扩展特性.这也是一个项目开发中,必不可少的环节. 关于…
一个引擎,最重要的就是工具,工具除了提升开发速度,提供可视化操作环境以外,还带了容错功能. 它使得大家的工作局限在一定的范围内,比如一个变量的配置,或者是一些类型的选择. 使用编辑器,使得既使不太明白的人,也能快速找到方法.如果是采用手工配置的话,那每一个东西需具备相当完善的文档,文件加载时,得提供高强度的错误效验和错误提示功能. 否则很容易陷入困境. UNITY3D的IDE本身的强大,除了表现在其提供的强大功能外,更让人喜欢的,是它高度的可扩展特性.这也是一个项目开发中,必不可少的环节. 关于…
不论是从官方手册,还是各种第三方教程,几乎涉及到的,都是讲如何使用U3D,以及U3D的优点. 虽然我是用的一个让步语气,但请不要否认U3D的这些优点,它们的确存在. 但对于一个引擎的特性来说,优点与缺点总是共存的. 你可以从网上了解到所有优点,但是,你很难真正体会到U3D的缺点,除非你自己被坑过. 今天,我就来细数一下U3D的缺点. 这些缺点,仅针对大中型项目. 小型项目,U3D的优点可以充分利用. 是不是猛的一看,全是缺点. 不要怕,想看优点的朋友,走这里  Unity3D使用经验总结 优点篇…
09年还在和其它小伙伴开发引擎的时候,Unity3D就初露头角. 当时就对这种基于组件式的设计结构很不理解. 觉得拆分过于细致,同时影响效率. 而时至今日,UNITY3D已经成为了众多团队的首选3D引擎. 并且,随着Unity3D 4.3的发布,原生的2D支持也让人大开眼界.虽然Unity3d的原生2D功能还有很长的路要走,但也阻挡不了它称霸当下. 2011年中,公司的引擎项目停止之后,我的目光便转到了U3D的身上,经过几番挣扎后,终于对基于组件式的对象模型有了新的认识. 而如今,这种模式,成为…
前面我们已经写了5篇关于编辑器的,这是第六篇,也是最后一篇: Unity3D编辑器扩展(一)——定义自己的菜单按钮 Unity3D编辑器扩展(二)——定义自己的窗口 Unity3D编辑器扩展(三)——使用GUI绘制窗口 Unity3D编辑器扩展(四)——扩展自己的组件 Unity3D编辑器扩展(五)——常用特性(Attribute)以及Selection类 一般来说,Windows应用程序中,对话框分为模态对话框和非模态对话框两种.二者的区别在于当对话框打开时,是否允许用户进行其他对象的操作.…
前面写了四篇关于编辑器的: 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 :…
Unity3D 引擎的编辑器拥有很强的扩展性,用的好可以帮我们省很多事情.在这里记录下如何去扩展 Unity3D 的编辑器,定制属于我们自己的开发环境. 本篇主要讲解在 Unity3D 引擎的各个窗口添加我们自己的菜单按钮. 添加菜单按钮我们需要用到 MenuItem 特性: MenuItem 的三个重载: MenuItem(string itemName); MenuItem(string itemName, bool isValidateFunction); MenuItem(string…
编辑器扩展 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这一栏,点击…