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