千家信息网

Unity中如何实现3D坐标转换UGUI坐标

发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,这篇文章主要为大家展示了"Unity中如何实现3D坐标转换UGUI坐标",内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下"Unity中如何实现3D坐标转换UGU
千家信息网最后更新 2026年11月03日Unity中如何实现3D坐标转换UGUI坐标

这篇文章主要为大家展示了"Unity中如何实现3D坐标转换UGUI坐标",内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下"Unity中如何实现3D坐标转换UGUI坐标"这篇文章吧。

0.前言

实际开发中,我们经常会遇到需要3D与2D坐标转换的问题,比如血条同步跟随人物移动、伤害数字在人物头上出现、从2D背包中拖动一个UI到3D物体上等情况,这些其实本质上都是3D坐标与UI坐标转换的问题。

1.核心思想

3D坐标转成UI坐标其实就是先转成屏幕坐标,再由屏幕坐标转换成UI坐标。

所以坐标转换分为三个部分

  • 3D坐标

  • 屏幕坐标

  • UI坐标

其中Unity的屏幕坐标系规定,左下角是原点,X轴向右是正方向,Y轴向上是正方向。

作为额外补充的一个知识点,GUI的坐标系规定左上角是原点,X轴向右为正方向,Y轴向下为正方向,跟屏幕坐标是不一样的,但是此篇我们用不到这个知识点。

这里UI坐标指的是UGUI的坐标,所以我们在计算的时候就需要用的Canvas相关的参数

2.代码示例

在此以血条跟随人物移动为需求,完成坐标转换的核心代码

using UnityEngine;
public class HPFollow : MonoBehaviour{ // 人物头顶 public Transform heroHeadTrans; // 摄像机,不使用Camera.main是因为性能消耗比较大 public Camera mainCamera;
// 血条 public RectTransform hpTrans;
// Canvas public RectTransform canvasTrans;
// Update is called once per frame void Update() { // 先将3D坐标转换成屏幕坐标 Vector2 screenPoint = RectTransformUtility.WorldToScreenPoint(mainCamera, heroHeadTrans.position);
// 再将屏幕坐标转换成UGUI坐标 Vector2 localPoint;
if (RectTransformUtility.ScreenPointToLocalPointInRectangle(canvasTrans, screenPoint, mainCamera, out localPoint)) { hpTrans.anchoredPosition = localPoint; } }}

别忘了修改Canvas的RenderMode

以上是"Unity中如何实现3D坐标转换UGUI坐标"这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!

坐标 屏幕 人物 方向 内容 知识 篇文章 代码 原点 坐标系 核心 知识点 问题 学习 帮助 移动 三个 前言 参数 头顶 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 中智农互联网科技 有格互联网科技 湖南永感互联网科技有限公司 河南真二互联网科技有限公司 美国互联网科技巨头监管 深圳齐家互联网科技 互联网科技小额贷款 互联网科技公司有哪些 富国互联网科技创新基金 央行互联网金融科技公司 北京华百购互联网科技有限公司 湖南诚度互联网科技有限公司 链环科技传统企业怎么转型互联网 西安小鹰速贷互联网科技有限公司 工业互联网展湾科技股份有限公司 互联网营销推广黑科技 九思连强互联网电子科技有限公司 科技和互联网行业的特点 互联网科技大会大佬 颐高云石互联网科技 互联网科技的 与互联网科技公司 多迪互联网科技有限公司 农村开互联网科技讲堂 广州慧亚互联网科技怎么样 广西互联网科技孵化中心 互联网行业科技股 北京市互联网新科技 领航科技大厦互联网公司 广西科技产业互联网是什么
0