将角色的世界坐标转为屏幕坐标

用途:显示角色头顶UI(名称、血条等)


玩家头顶UI.gif

方法

  • 屏幕坐标 = camera.WorldToScreenPoint(世界坐标)
  • 角色头顶UI位置 = camera.WorldToScreenPoint(角色的世界坐标)+ 位置偏移

示例代码

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

/// <summary>
/// 设置玩家头顶UI的位置
/// </summary>
public class HeadUI : MonoBehaviour
{
    public Transform targetTrans;
    public Transform headUiTrans;

    public Vector3 posOffset = Vector3.up * 100f;

    // 将目标(即玩家角色)的世界坐标转为屏幕中的坐标
    private Vector3 TargetPos { get { return cam.WorldToScreenPoint(targetTrans.position); } }
    // 为了让头顶UI显示在玩家的上方,因此头顶UI的坐标是在原坐标基础上做一个向上的偏移
    private Vector3 Pos { get{ return TargetPos + posOffset; } }

    private Camera cam;

    private void Start()
    {
        Init();
    }

    private void Init()
    {
        cam = Camera.main;
    }

    private void Update()
    {
        headUiTrans.position = Pos;
    }
}
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 一、Unity3D中有哪些坐标系? 坐标系这个概念最早是由法国数学家笛卡尔提出的,并由此创造了用代数方法来研究几何...
    OneMore2018阅读 4,714评论 0赞 7
  • ¥开启¥ 【iAPP实现进入界面执行逐一显】 〖2017-08-25 15:22:14〗 《//首先开一个线程,因...
    小菜c阅读 7,604评论 0赞 17
  • 1 我认识她是在一个社团宣讲会上,当时我们才大一,什么都觉得新奇,什么都想尝试。 那时候的我,腼腆被动,跟人寒暄一...
    哆啦煨梦阅读 556评论 4赞 3
  • “各班班主任速报本班请假人数!”一周以来,这是每天到校后收到的第一条信息。看着每天请假人数与日俱增,我心急如焚。为...
    西屋往事阅读 310评论 0赞 1
  • 今天晚上听了利贞老师的课,感觉他们很幸福,很让人羡慕 ,我们都要向老师学习。
    冰冰_489d阅读 159评论 0赞 0

友情链接更多精彩内容