[Unity3D]Unity3D游戏开发之继续探索NGUI
Posted ljbguanli
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[Unity3D]Unity3D游戏开发之继续探索NGUI相关的知识,希望对你有一定的参考价值。
大家好,我是秦元培。欢迎大家关注我的博客。我的博客地址是blog.csdn.net/qinyuanpei。
博主近期開始研究NGUI了,但是说实话,博主感觉NGUI的东西似乎有些分散,由于网上大部分的资料都仅仅是简单地解说怎样使用NGUI,并没有从实质性的原理出发来解说NGUI的内涵,这就和我们学习.NET仅仅会拖控件是一样的。并不能把握事物内在的东西。所以,博主推荐大家从官方提供的样例入手研究NGUI。博主这几天基本上都在看NGUI的演示样例程序,自我感觉内容比較杂吧。在今天的文章中,博主将讲述以下几个问题:
1、NGUI锚点控制
2、Unity3D场景与NGUI混合使用
3、Unity3D模型贴图丢失问题解决方式
以下開始今天的内容,我们来详细解说:
一、NGUI锚点控制
在NGUI中界面依照以下的图被分为9个区域,各自是上、下、左、右、左上、左下、右上、右下、中间。它在NGUI中被称为锚点。
通过锚点控制界面布局有什么优点呢?优点就在于我们能够将同一个区域内的控件依照一种方式来管理,这样能够简化我们的管理。
试想假设每个控件都使用绝对坐标来控制,那将是多么复杂的一件事情啊,通过NGUI提供的锚点功能。我们能够在各个锚点内使用相对坐标来确定控件在该区域内的位置。好了,以下我们就以这幅图为例来解说怎样使用NGUI的锚点功能。
首先我们利用NGUI提供的界面工具创建一个2D的界面。我们将Camera改名为2DUICamera,然后将其以下默认的Panel改名为2DUiPanel,并删除默认的Anchor节点。接下来,我们在该节点下创建一个空的游戏体,并使用Rest方法将它的Position、Rotation设置(0,0,0),这一步非常重要,即使后面须要改动其位置。
然后我们通过NGUI->Attach->Anchor为其加入一个UiAnchor使其成为一个锚点。并改名为Bottom_Anchor,这意味着我们将在该节点下布局屏幕底部要显示的内容,所以我们须要将该节点对象绑定的UIAnchor脚本中的Side设置为Bottom,如图:
我们设置Anchor_Bottom的坐标为(0,-240,0),这里的參数值视项目而定。
接下来,我们在其以下加入一个空的物体。改名为Anchor_Offset,从名称就能够看出。这是一个用于控制该区域内子控件偏移量的物体,我们将其位置设为(0,40,0),使其相对于该区域原点向上偏移40.接下来,我们在该节点下,加入一个Button。设置Label值为Bottom。
相似地。我们分别为剩下的8个区域建立锚点。建立的方法和上面同样,并且都是对称的。这里就不再多说了。通过这个样例就是想告诉大家在使用NGUI的时候。应该使用锚点来合理的管理游戏中的界面元素。这样便于我们更好的管理界面。终于的效果就是開始展示的那张图片。这里就不再展示了。
二、Unity3D场景与NGUI混合使用
Unity3D游戏场景分为2D和3D,我们来分别来讲它们和NGUI的混合使用。首先,对于2D界面来说。我们须要对默认的2DUi结构进行下改动,我们须要将Anchor和Camera放在同一层级中,即两者均属于2DUI的子节点。
其次,要设置2D界面的相机景深。该值要大于场景内主摄像机的景深值,其他的參数保持默认就可以。
如图所看到的,是博主在《[Unity3D]Unity3D游戏开发之跑酷游戏项目解说》这篇文章中利用NGUI来显示玩家的金币数目和奔跑距离的截图:
那么对于3D界面就显得十分简单了,由于在场景中仅仅有一个摄像机,所以我们能够直接依照平时的方法来做,但是NGUI的单位似乎和Unity的单位不同,在设置位置的时候。对于NGUI中的物体通常须要非常大的值才干移动到目标位置,眼下还没有搞清楚内在原因,等博主研究明确了会在文章后面补充的,只是依据宣雨松的博客这里确实须要一个数值上的转换,只是博主并没有研究清楚。以下是博主将NGUI和Unity3D的场景混合使用的效果,能够发现两者能够完美的执行在同一个场景中:
三、Unity3D模型贴图丢失问题解决方式
博主是一个研究代码的,设计类软件仅仅会Photoshop和CAD,所以对于模型什么的,基本上都不会。博主从网上下载了3DMax的模型,结果导出为FBX格式后在Unity3D中模型贴图丢失了。模型表面材质是Unity3D中默认的灰色材质。博主研究了好久始终没有找到原因。直到昨天晚上博主才找到了解决问题的方法,希望能够对大家有所帮助吧。
首先。我们打开3DMax。选中我们的模型—仙剑奇侠传四柳梦璃,如图:
接下来,我们选择渲染->查看图像文件,在新打开的对话框中定位到贴图目录中,一般在和该模型文件同级的Textures目录中。贴图格式为dds,这种格式在Unity中是不支持的。好,接下来,我们逐个选中贴图文件:
点击查看,打开贴图图片。点击第一个button保存贴图。
最后,我们回到Unity3D中。在模型所在的文件下建立一个Textures的目录,将刚才保存的贴图文件拷贝到该目录下。在Unity中导入模型后,会在模型目录下生成一个Materials的目录,我们在这个目录下能够看到模型相应的材质,选择一个材质:
当我们为全部材质设置为贴图后,在场景中就会看到我们熟悉的身影啦,只是怎么感觉和游戏里的人物差距那么大呢?
好了。感谢大家关注我的博客。今天总算在12点曾经能够完工了,大家晚安啊,哈哈。不要学我啊,我是被舍友逼得没办法才这种。
每日箴言:你的人生永远不会辜负你的。
那些转错的弯,那些走错的路。那些流下的泪水。那些滴下的汗水,那些留下的伤痕。全都让你成为独一无二的自己。
—— 朱学恒
喜欢我的博客请记住我的名字:秦元培,我的博客地址是blog.csdn.net/qinyuanpei
转载请注明出处,本文作者:秦元培。本文出处:http://blog.csdn.net/qinyuanpei/article/details/25654647
以上是关于[Unity3D]Unity3D游戏开发之继续探索NGUI的主要内容,如果未能解决你的问题,请参考以下文章
[Unity3D]Unity3D游戏开发之从Unity3D到Eclipse