首先做一個血條,創建一個名為Follow3DObject的腳本添加到血條控件上。
Follow3DObject.cs的代碼如下:
using UnityEngine; using System.Collections; public class Follow3DObject : MonoBehaviour { public Transform target; public Vector3 offset = new Vector3(0, 1, 0); // Use this for initialization void Start() { } // Update is called once per frame void Update() { if (target != null) { transform.position = Camera.main.WorldToScreenPoint(target.position + offset); } } }
將上面的腳本的target設置成對應的怪物,就可以看到血條跟着怪物移動了。
再給一個血條排序的腳本,這里是簡單的根據Z軸的坐標來對血條進行排序的。實際場景下可能需要根據攝像機看到的怪物的順序來進行排序,只要替換一下排序算法就行了。
using UnityEngine; using System.Collections; using Boo.Lang; public class SortHUD : MonoBehaviour { // Use this for initialization void Start() { } // Update is called once per frame void Update() { var list = new List<Transform>(); foreach (Transform t in transform) { list.Add(t); } list.Sort((a, b) => { return a.position.z.CompareTo(b.position.z); }); for (int i = 0; i < list.Count; i++) { list[i].SetSiblingIndex(i); } } }