unity3d NGUI多场景共用界面制作

1创建单独编辑UI的unity场景 UIScene.unity 用来做UI面界 ,创建Resources文件存放UI界面的prefab,代码里动态load资源仅仅能从Resources目录载入

2创建2DUI NGUI->Create->2D UI ,改动camera名字 做成prefab,做为游戏UI全局摄像机

3在UIScene场景中创建单独界面 在之前创建的UIRoot->camera下创那panel做为根,做好详细界面后。从panel层做成prefab

4代码中

用static变量保存UIRoot的实例,用DontDestroyOnLoad设置换场景也不释放对像

Global.GUIRoot = Instantiate(Resources.Load(UIRoot));//实例化全局UI摄像机

DontDestroyOnLoad(Global.GUIRoot);

在随意场景中

panel = Instantiate(Resources.Load(xxx));//实例化界面

UICamera = GameObject.Find("UICamera");//取得ui摄像机obj

panel.transform.parent = UICamera.transform;//设置父子关系

panel.transform.localScale = new Vector3(1,1,1);//还原正常比例 

//设置完父子关系后panel的缩放会变成 跟据原大小变为相应到UICamera大小 所以要重设比例

比方 panel中有512X512的一个图 正常时localScale全为1

设置完父子关系后localScale有可能会变成240,由于实例化时是实例化在当前场景中的。并非在UICamera下


这样做能够方便制作成单独的UI界面,而且能够在不同场景使用。同样的UI界面

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值