描述:3d场景中有一人物target, ui界面上有一血条blood ,让血条跟随人物移动。
两个相机变量:3d_camera 、 ui_camera
步骤:
(1) 将3d物体坐标转换为屏幕坐标
var screenPos = 3d_camera .WorldToScreenPoint(target.Position);
(2)将屏幕坐标转为ui坐标
Vector2 localPos;
if(RectTransformUtility.ScreenPointToLocalPointInRectangle(parentRect, screenPos, ui_camera , out localPos))
{
blood.LocalPosition = localPos;
}
ScreenPointToLocalPointInRectangle的参数描述:
参数1:血条blood的父物体
参数2:第(1)步转换的屏幕坐标
参数3:ui相机
参数4:输出的ui的坐标,即你想要得值!
3D场景到UI血条的实时同步技术
本文详细介绍了如何在3D场景中实现人物血条UI元素的动态跟随。通过3D相机坐标转换为屏幕坐标,再将屏幕坐标转化为UI坐标,确保血条始终准确地显示在人物上方。具体步骤包括使用WorldToScreenPoint方法转换3D位置,然后通过ScreenPointToLocalPointInRectangle函数将坐标调整到UI界面内,实现血条与人物的完美同步。
1398

被折叠的 条评论
为什么被折叠?



