ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

UI跟随3D人物

2026/8/15 12:41:35 拓冰建站 浏览量
UI跟随3D人物

UI跟随3D人物

  • UI跟随3D人物
  • 人物血条或者对话框
    • 一、方法一将人物坐标转换为2D的UI坐标
    • 二、方法二将画Canvas的Render Mode改为World Space方式

UI跟随3D人物

人物血条或者对话框

一、方法一将人物坐标转换为2D的UI坐标

UI_Follow脚本挂载到需要跟随的3D人物上
offset为偏移量
rectTransform为需要跟随的UI

UI普通创建无需调整Canvas的Render Mode模式,无需将UI放到3D人物下面

public class UI_Follow : MonoBehaviour {/// <summary>/// 偏移量/// </summary>public Vector2 offset;/// <summary>/// 人物头顶标识/// </summary>public RectTransform rectTransform;void Update(){FollowPlayer();}/// <summary>/// UI跟随人物/// </summary>void FollowPlayer(){if (rectTransform == null) return;Vector2 screenPos = Camera.main.WorldToScreenPoint(transform.position);rectTransform.position = screenPos + new Vector2(offset.x, offset.y);if (screenPos.x > Screen.width || screenPos.x < 0 || screenPos.y > Screen.height || screenPos.y < 0) rectTransform.gameObject.SetActive(false);else rectTransform.gameObject.SetActive(true);}
}

二、方法二将画Canvas的Render Mode改为World Space方式

将UI创建在3D人物下方

创建一个脚本在这个UI或者当前Canvas上,Update中写入LookA函数

// Update is called once per framevoid Update () {transform.LookAt(Camera.main.transform);}