using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; //显示玩家距离目标点位置 public class DistanceDisplay3D : MonoBehaviour { public Transform Character; // 玩家物体的 Transform public Transform target; // 目标点物体的 Transform public Text distanceText; // 3D Canvas 上显示距离的 Text 组件 private Transform canvasTransform; // 3D UI Canvas 的 Transform void Start() { canvasTransform = distanceText.transform.parent; // 获取 Canvas 的 Transform } void Update() { // 计算玩家和目标之间的距离 float distance = Vector3.Distance(Character.position, target.position)-4; // 更新 UI 显示距离,保留两位小数 distanceText.text = "距离目标: " + distance.ToString("F0") + " 米"; // 将 3D UI Canvas 移动到目标点上方,跟随目标点 canvasTransform.position = target.position + new Vector3(0, 5f, 0); // 在目标点上方 2 米 canvasTransform.LookAt(Character); // 让 3D UI 朝向玩家 canvasTransform.Rotate(0, 180, 0); // 反转 Canvas 的 y 轴,确保文字不被反转 } }