若知其所以然,自然知其然。
HUD是指平视显示器,就是套在脸上,和你的眼睛固定在一起,HUD的意思就是界面咯,一般我们说HUD特指把3D空间中的界面的某些信息(比如血条,伤害之类)的贴在界面上,对应3D空间投影到屏幕空间的位置。
很简单很简单的一件事,就是投影而已。
虽然我一直认为自己学的是野路子,相当的空中楼阁。不幸发现,比我路子更野,比我基础更差的同学实在是多到令人发指的程度。
没办法,我们用UGUI来实现一下这个投影过程。
首先准备一下我们的3D空间
弄几个盒子让他们转起来。
如果连这个都不知道怎么弄得同学我劝你还是关了这页吧,如果真的不会,还是愿意继续往下看,就看看下面三张图。
然后,弄个UGUI的简单界面
弄三个Image,区别开来
然后Canvas 要放在ScreenSpace,因为我们要映射到屏幕空间,这样只需要一次映射就搞定了。
我喜欢让他按屏幕高度缩放,这个不影响定位,看你需求。
让Image按照Cube的位置显示
就是这么简单,一次映射,问题解决
排序的问题
还有最后一个问题,HUD是GUI,GUI是按GUI的规矩排序的,但是3D物体是按深度排序的。
需要把HUD的排序规则也要做个映射,
我们给Canvas加一个SortHud的脚本就解决了
按照深度的规矩重新排下序就好了
付SVN地址
http://code.taobao.org/svn/fightbeta/trunk/uGUISample/