[Unity]如何让世界坐标中的UI物体永远面向相机
世界坐标中的UI物体不面向相机时效果如图所示:
左边的两个进度条是这个样子的,朝向他们自己的“面向”,和相机是不同步的,看起来比较奇怪
这个相机角度比较好,如果相机角度更***钻一点,两个进度条会再窄一些,效果就很差了
然后让UI物体在相机里看起来永远是“面向相机”的效果如下图所示:
可以看到除了透视造成的近大远小之外,两个进度条都是看向相机的,看起来会正常很多
然后实现这种效果的代码是这样的:
private void Update() {
transform.rotation = Quaternion.LookRotation(cam.transform.forward);
}
就,为了实现一个“UI组件永远看向相机”这样一个效果,实际上代码上的逻辑是UI组件永远面向和相机相同的方向,相机向前下方看过去,UI组件也向前下方看过去,这样相机从后面看到UI组件的时候,UI组件和相机的朝向是完全一致的,也就实现了“看向相机”的视觉效果
而如果尝试直接让UI组件LookAt
相机的话,实际上两个组件的朝向是完全相反的,会导致这个进度条从右往左推进度,就像两个人面对面一样,对面的人的左手实际上在我的右边,进度条从左往右推,在相机看起来就是一个从右往左推的进度条,会出现这样的问题。
偶然遇到的,记录一下。
分类:
Unity
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?