若知其所以然,自然知其然。
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/