让2DUI跟随3D物体的位置该怎么做?

让2DUI跟随3D物体的位置该怎么做?

如何使 2D UI 跟随 3D 对象的移动或指示 3D 对象的位置?

键码:

相机主屏幕点(目标位置) + 新矢量3(-屏幕宽度 / 2程序开发游戏图片素材, -屏幕高度 / 2);

测试脚本:

位置3D到2D测试.cs

使用统一引擎;

///

3D对象到2D屏幕坐标测试

张宇 2019-03-20

///

公共类位置3DTo2D测试:MonoBeavir {

公共变换目标;3D目标

公共变换 ui; 2D 用户界面

私有矢量3起源关闭;当前 UI 系统 (0,0) 点相对于屏幕左下角 (0unity屏幕坐标系,0) 点的偏移量

私有空位 开始 () {

原点关闭 = 新矢量 3(-屏幕宽度 / 2unity屏幕坐标系, -屏幕高度 / 2);

重新定位();

}

私人空洞更新 () {

需要性能优化 只有在对象移动或相机移动后才能调用

重新定位();

}

根据目标对象重新定位 UI

私有空隙重新定位() {

矢量 3 位置 = 相机.主.世界到屏幕点(目标位置) + 原点关闭;

位置.z = 0;

ui.localPosition = 位置;

}

}

达到的效果:

健康条 UI 悬浮在角色头部上方

当相机旋转角度时重新定位