[Unity] キャラの上にuGUIのテキスト表示

名前とか、台詞とか、画像とかを真上に出したい。

単純な文字表示はこれでいけた。
Worldポジションに加算後、変換。

Spriteを子にもつ親に配置。
Textは別のCanvas上にあるもの。

using UnityEngine;
using UnityEngine.UI;

public class CharUIText : MonoBehaviour {

	public Text nameText = null;
	public float risePoint = 1.0f;
	Camera cam;
	void Start () {
		GameObject obj = GameObject.Find ("Main Camera");
		cam = obj.GetComponent<Camera> ();
	}
	void Update () {
		nameText.transform.position = cam.WorldToScreenPoint (new Vector3(transform.position.x, transform.position.y + risePoint, transform.position.z));
	}
}


Cameraの設定によって変わるようです!

以下のサイトが参考になりました。

テラシュールブログ
【Unity】【uGUI】Screenの座標とWorld(3D)座標の変換について

スポンサーリンク

シェアする

  • このエントリーをはてなブックマークに追加

フォローする