尝试u3d中将代码与编辑器分离

最近与朋友交流,他一直是做端游,最近接触了u3d以后无法忍受代码与配置文件,美术资源全部纠缠在一起的状况,于是一直在琢磨怎么将编辑器与代码彻底分离。

自己也抽空研究一下,碰到一些问题先记录下来。

首先声明只实现了部分分离,还没做到“彻底”分开。

最常规的思路当然就是将代码自己编译成dll然后放到Plugins目录下,

问题1:不知道如何“那些在编辑器中直接将代码拉到对象身上”,于是考虑全手写

后来发现自己写的plugin中,编辑器中就能将dll展开,将其中的继承了MonoBehaviour的class都显示出来,这时一样可以做拖拽的事情。

只是没有目录显示,如果dll中的class比较多,找起来估计会费一番力气。

当然这个也还算是解决。

问题2:NGUI中大量用到了#if UNITY_EDITOR,这个好头疼,如果将ngui分别编译两份,一份带UNITY_EDITOR一份不带的话,放到编辑器中

显然会报重复定义错误,想了好久没有方案,要不就版本管理中做两个分之,平常用的UNITY_EDITOR,到发布分支就用不带editor的,这样的话就

得自己写发布功能来编译输出了,还是麻烦。

因此现在的做法就是将依赖NGUI的代码还是放到编辑器中,不依赖NGUI的就在自己的proj中编写。。。

似乎没太大意义。

上一篇:【.net 深呼吸】细说CodeDom(9):动态编译


下一篇:C#动态编译代码,执行一个代码片段,或者从指定文件中加载某个接口的实现类