最近与朋友交流,他一直是做端游,最近接触了u3d以后无法忍受代码与配置文件,美术资源全部纠缠在一起的状况,于是一直在琢磨怎么将编辑器与代码彻底分离。
自己也抽空研究一下,碰到一些问题先记录下来。
首先声明只实现了部分分离,还没做到“彻底”分开。
最常规的思路当然就是将代码自己编译成dll然后放到Plugins目录下,
问题1:不知道如何“那些在编辑器中直接将代码拉到对象身上”,于是考虑全手写
后来发现自己写的plugin中,编辑器中就能将dll展开,将其中的继承了MonoBehaviour的class都显示出来,这时一样可以做拖拽的事情。
只是没有目录显示,如果dll中的class比较多,找起来估计会费一番力气。
当然这个也还算是解决。
问题2:NGUI中大量用到了#if UNITY_EDITOR,这个好头疼,如果将ngui分别编译两份,一份带UNITY_EDITOR一份不带的话,放到编辑器中
显然会报重复定义错误,想了好久没有方案,要不就版本管理中做两个分之,平常用的UNITY_EDITOR,到发布分支就用不带editor的,这样的话就
得自己写发布功能来编译输出了,还是麻烦。
因此现在的做法就是将依赖NGUI的代码还是放到编辑器中,不依赖NGUI的就在自己的proj中编写。。。
似乎没太大意义。