纳金网

标题: Unity3D之Editor扩展学习——四大名捕闹京东 [打印本页]

作者: star-小虎    时间: 2013-10-12 15:29
标题: Unity3D之Editor扩展学习——四大名捕闹京东
Unity3D提供了强大的编辑器扩展机制,在项目开发中,如果可以将一些繁琐的工作放在编辑器扩展中进行,则会大大提高效率。本文对编辑器扩展进行了一些总结,希望对有兴趣编写编辑器扩展的开发人员有所帮助。当我们编写一个编辑器扩展时,一般可以从以下四个类继承:
1 . ScriptableObject  
最常见的小功能扩展,一般不用窗口的编辑扩展,可以从这个类中继承,如以下代码所示:
[csharp] view plaincopyprint?

[csharp] view plaincopyprint?



这个扩展脚本从菜单的“GameObject->Add Child”启动,功能是给Hierarchy窗口中选中的对GameObject添加一个名字为“_Child”的子GameObject,这样可以免去从Hierarchy窗口的根节点拖拽新创建的GameObject到当前选中节点的麻烦,因为在Unity3D编辑器中,创建一个EmptyObject会在Hierarchy窗口的根节点出现,无论当前选中的节点对象是哪个。
2 .ScriptableWizard      
需要对扩展的参数进行设置,然后再进行功能触发的,可以从这个类进行派生。它已经定制好了四个消息响应函数,开发者对其进行填充即可。
(1) OnWizardUpdate  
当扩展窗口打开时或用户对窗口的内容进行改动时,会调用此函数。一般会在这里面显示帮助文字和进行内容有效性验证;
(2)OnWizardCreate  
这是用户点击窗口的Create按钮时进行的操作,从ScriptableWizard的名字可以看出,这是一种类似向导的窗口 ,而这种窗口我们在Visual Studio中经常会使用到,
(3) OnDrawGizmos
在窗口可见时,每一帧都会调用这个函数。在其中进行Gizmos的绘制,也就是辅助编辑的线框体。Unity的Gizmos类提供了DrawRayDrawLine ,DrawWireSphere ,DrawSphere ,DrawWireCube ,DrawCubeDrawIcon ,DrawGUITexture 功能。这个功能在Unity3D 的3.4版本中测试了一下,发现没有任何Gizmos绘制出来
(4) OnWizardOtherButton
本文在(2) 中已经提及,ScriptableWizard窗口最多可以定制两个按钮,一个是Create,另外一个称之为Other,这个函数会在other按钮被点击时调用。下面是一个使用ScriptableWizard进行编辑扩展的例子:

[csharp] view plaincopyprint?


其运行窗口如下所示:
[csharp] view plaincopyprint?



其窗口如下图所示:



4. Editor
对某自定义组件进行观察的Inspector窗口,可以从它派生。如下代码所示:

代码片段1定义了一个名为Star的组件:

[csharp] view plaincopyprint?



代码片段2定义了对Star组件进行观测的Inspector窗口:

[csharp] view plaincopyprint?



其Inspector窗口如下图所示:





作者: 咻咻神    时间: 2013-10-12 16:45
顶一个!!
作者: HIDEOKOJIMA    时间: 2013-10-12 18:42
Thanks man !
作者: wfunity    时间: 2013-10-12 21:57
很详细
作者: may    时间: 2013-10-12 22:57
这个跟京东有啥关联啊?
作者: nts    时间: 2013-10-13 11:11
干掉小日本,o yeah,顺便说一下这也四大名捕有毛关系
作者: qq545509938    时间: 2013-11-6 11:24
LZ太威武了,学习到了
作者: 王者再临    时间: 2013-11-8 13:06
标题与内容不符啊
作者: orokborokhulu    时间: 2013-11-8 17:12
nice sharing
作者: orokborokhulu    时间: 2013-11-8 17:12
nice sharing
作者: PegSan_Li    时间: 2013-11-8 17:43
感谢分享
作者: likunhan    时间: 2013-11-9 16:23
厉害!另外----------标题有点。。。。。。。。




欢迎光临 纳金网 (http://go.narkii.com/club/) Powered by Discuz! X2.5