关于Hello Hell项目的经验总结

首先Hello Hell项目是博主在大学三年级期间独立开发的一款游戏,主要目的就是熟悉unity引擎以及提高对整个游戏体系的把控。

下面是项目整体的结构图
关于Hello Hell项目的经验总结_第1张图片

好,接下来记录一下在完成项目期间,遇到的一些问题以及解决方法。

项目UI框架的搭建。
众所周知,Unity引擎在5.0版本后,重做了自带UI系统,简称UGUI,较之以前的GUI,有了很大的突破,Ui事件的响应和建立更加容易,操作性提高不少。
但不可否认的是,NGUI仍然是大多数开发者所乐意使用的UI系统,原因可能有二:
1.人们更偏向于是用自己熟悉的工具或者插件。
2.在之前GUI不那么容易使用的时候,NGUI成功抢占了UI系统的位置,致使大部分插件制作工作室,偏向于制作适合NGUI的插件,这样就使得NGUI更加流行和便于使用。

额,似乎是有点扯远了,来来来,回正题。
NGUI为例:

Tips1:在创建UI Root之后,我们就可以不再需要从菜单栏添加UI元素了,一切都可以在Sence面板和Inspector面板中创建或修改组件了。
关于Hello Hell项目的经验总结_第2张图片
child即代表创建一个sprite作为当前sprite的子层。
sibiling则是创建一个同等级的sprite。
对啦,项目中最好建一个UIManager,用来帮助场景UI中的按钮的监听。

Tips2:快速创建按钮,并附加监听事件。
第一步,添加Box Collider
关于Hello Hell项目的经验总结_第3张图片
第二步,添加Button Script
关于Hello Hell项目的经验总结_第4张图片
第三步,创建Listener 脚本(名字可以自己定啦)
关于Hello Hell项目的经验总结_第5张图片
第四步,在之前建立的UIManager上附加脚本
关于Hello Hell项目的经验总结_第6张图片
第五步,为按钮指定方法
关于Hello Hell项目的经验总结_第7张图片
运行点击按钮之后,就会实现按钮的监听,更值得一提的是,你项目的所有按钮,都可以用这样的方法。
这里写图片描述

Tips3:关于光线碰撞。
当你的项目中,需要与游戏中的物体交互时,大多数人都会用光线碰撞,顾名思义,就是从鼠标点击的地方投射一条射线,但是大家可能不知道,这条射线是可以穿过UI层的。也就是说,当UI按钮下有游戏物体且有碰撞体组件的时候,你在点击UI按钮的时候,点击的并不是你认为的游戏物体。
比如,博主所做的游戏中,再点击完空炮台基座的时候,是需要记录当前所点击的炮台基座,然后再点击UI按钮,实例化一个相应的炮台给炮台基座。在这个背景下,博主就遇到了这样的尴尬,实例化的东西跑到别的炮台上去了。暂时通过别的方法解决了(设置Tag,这里就不再赘述了,想了解的可以私聊)
关于Hello Hell项目的经验总结_第8张图片
回顾一下,光线碰撞的标准代码吧!
关于Hello Hell项目的经验总结_第9张图片

你可能感兴趣的:(Unity,3D)