Unity RectTransformUtility 几个函数的详解

本文详细解析了Unity中UI坐标转换的三个关键方法:ScreenPointToLocalPointInRectangle、ScreenPointToWorldPointInRectangle和WorldToScreenPoint。通过实例展示了如何利用这些方法实现HP条跟随角色移动的效果,对于理解Unity UI与摄像机之间的坐标关系十分有用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  • 1、 RectTransformUtility.ScreenPointToLocalPointInRectangle

public static bool ScreenPointToLocalPointInRectangle(RectTransform rect, Vector2 screenPoint, Camera cam, out Vector3 worldPoint);

根据屏幕坐标与相对矩形rect摄像机cam而言来计算出本地坐标。这个我自己实验的时候有点没搞懂。

 

  • 2、RectTransformUtility.ScreenPointToWorldPointInRectangle

public static bool ScreenPointToWorldPointInRectangle(RectTransform rect, Vector2 screenPoint, Camera cam, out Vector3 worldPoint);

根据屏幕坐标与相对矩形rect和摄像机cam而言来计算出世界坐标。很有用。通常计算UI的时候,rect带入canvas的recttransform。如果canvas 是screen overlay,则cam是null。

 

  • 3、RectTransformUtility.WorldToScreenPoint

Vector3 WorldToScreenPoint(Camera cam,Vector3 position);

屏幕是一个矩形,如果是一个1920*1080的屏幕,则屏幕的左下角是(0,0) ,右上角是(1920,1080)

如果物体的在一个摄像机cam1的正中心,也就是在屏幕的正中心,那么算出来的结果就是(1920/2,1080/2,z)

 

研究了之后,要使一个Hpbar跟着人物可以这样

先用WorldToScreenPoint 计算出ScreenPoint。 然后根据算出来的点,带入ScreenPointToWorldPointInRectangle,将得到的WorldPoint赋值给Hpbar的position。

 

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值