这篇脚本简单易懂,无非就是将NPC的3D坐标转换为2D坐标,根据NPC高度用GUI绘制名称。
<span style="font-size:14px;">using UnityEngine;
using System.Collections;
public class NameHun : MonoBehaviour {
private GameObject player;//主角对象
private Camera camera;//主摄像机对象
private string name="小混混";//NPC名称
private float npcHeight=0.8f;//NPC模型高度,可根据模型大小更改
// Use this for initialization
void Start () {
//根据Tag得到主角对象
player=GameObject.FindWithTag("Player");
camera = Camera.main;
}
// Update is called once per frame
void Update () {
transform.LookAt (player.transform);//保持NPC一直面向主角
transform.eulerAngles += new Vector3 (0, 180, 0);//如果NPC方向没问题,这句可忽略
}
void OnGUI()
{ //得到NPC头顶在3D世界中的坐标
//默认NPC坐标点在脚底下,所以这里加上npcHeight它模型的高度即可
Vector3 worldPosition = new Vector3 (transform.position.x, t