NGUI研究之3D模型坐標轉2D屏幕坐標-血條
阿新 • • 發佈:2017-07-10
uic bject blank orm 組成 自己 index lan rac
??
剛好今天有朋友問我,比較典型的樣例就是遊戲裏面人物的血條。
原理非常easy就是把3D點換算成2D的點。可是因為NGUI自身是3D所以我們須要先把NGUI下的點轉成2D點。然後在把他轉成3D的點。
聽起來有點繞,不要緊我直接上代碼。
對屏幕自適應不明確的看NGUI研究之怎樣自適應屏幕
眼下我一直都是用NGUI來做人物血條,可是2D血條都會有個限制。就是它不能和模型有遮擋關系。只是血條能夠依據人物的位置調節。比方遠一點的人物血條會小一些,近一點的人物血條會大一些。
最好讓美術做FBX的時候直接內置一個GameObject 的點。由於模型有的高有的低,所以血條的位置高度是不一樣的,假設美術內置的話能夠讓美術來調節模型頭頂上的點,這樣比較方便。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 |
using
UnityEngine;
using System.Collections;
public class
NewBehaviourScript
: MonoBehaviour
{
//角色
public
Transform |
再說一下,一般血條可能都是由多個UISprite組成。那麽最好把這些Sprite都掛在同一個GameObject以下,這樣僅僅須要修正父對象。所以子對象的縮放都會正確。控制角色移動近一點的截圖。
控制角色移動遠一點的截圖,你會發現血條在屏幕上的比例是不會變化的。
NGUI研究之3D模型坐標轉2D屏幕坐標-血條