如何使 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 悬浮在角色头部上方
当相机旋转角度时重新定位