Unityで3Dキャラの頭上にCanvas Textを表示する

f:id:peroon:20150515202213p:plain f:id:peroon:20150515202522p:plain

  • CanvasはScreenSpace Overlay
  • Canvas上のテキストに下記コンポネントをつける
  • 3D空間上のキャラの子にEmpty Objectをつける(そこがテキスト表示位置になる)
  • PlayerNameText.targetに上記Empty Objectをつける
using UnityEngine;
using System.Collections;

// 3Dキャラの頭上にCanvas上のテキストを表示(宴本p78)

public class PlayerNameText : MonoBehaviour {

    public Transform target;
    private Vector3 screenPoint;

    void LateUpdate(){
        screenPoint = Camera.main.WorldToScreenPoint (target.position);
        transform.position = new Vector3 (screenPoint.x, screenPoint.y, 0);
    }
}