在unity3d中,如果我们需要系统同一套使用igui制作的GUI系统,那该怎么办呢?如果我们直接在原来的场景中
拷贝一份是可以,但是呢!当我们编写逻辑代码的时候就会在原来的IGUICode_xx.cs文件进行编辑的。这样就会出现大家都不希望看到的现象,那就是影响以前的代码结构。这样带来很多心的BUG,同时代码就变得更加复杂了!
所以我们就需要对原来的iguiCode_xx.cs文件进行重命名,同时使用iGUIRoot对象上的Manual Code File属性进行设置,这样就可以达到我们需要的效果了,既实现了代码的重用也不会导致代码的冗余高的现象了!想想挺爽的!!
现在解决方案介绍如下:
假设原始文件是GUICode_demo.cs!
1、第一件事就是 Ctr+D一下,拷贝一份iGUICode_demo.cs,这个时候就会生出 iGUICode_demo(1).cs的 文件
2、我们重命名一下新生生成的 iGUICode_demo(1).cs文件(EG: iGUICode_demo(1).cs—— >iGUICode_test.cs)
3、我们接下来需要把iGUICode_test.cs文件中的类名字以及相关的变量类型改为iGUICode_test
(我们可以使用monoIDE中的反射进行)
4、这一步很重要的哈!删除原始文件GUICode_demo.cs!
5、我们先在IGUIRoot游戏物体上,删除原始的脚本组件(这一点也是很重要的!);最后我们把改好的cs 文件拖给iGUIRoot对象上的Manual Code File属性。
效果图:
层级视图中的多个iGUIRoot:
温馨提示:
在iGUI中,拖控件的时候,层级视图中同一时刻只能激活一个iGUIRoot。所以呢!注意切换
结束语:
完成上面的步骤,我们需要的效果就有了!
Enjoy!