ユニティUGUI HUDモンスター血条実現
3760 ワード
まず血液バーを作成し、Follow 3 DObjectというスクリプトを作成して血液バーコントロールに追加します.
Follow3DObject.csのコードは以下の通りです.
上のシナリオのターゲットを対応するモンスターに設定すると、モンスターについて血筋が移動するのが見えます.
血筋ソートのスクリプトをもう1つあげます.ここではZ軸の座標に基づいて簡単に血筋をソートします.実際のシーンではカメラで見たモンスターの順番に従ってソートする必要があるかもしれませんが、ソートアルゴリズムを置き換えるだけでいいです.
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);
}
}
}
上のシナリオのターゲットを対応するモンスターに設定すると、モンスターについて血筋が移動するのが見えます.
血筋ソートのスクリプトをもう1つあげます.ここでは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);
}
}
}