当前位置: 首页 > news >正文

Unity 使UI始终朝向摄像机

一、使用场景

在一些情况下我们需要UI朝向摄像机,比如血条。

二、遇到的问题

首先想到的方法是:

transform.forward = cam.transform.forward;

但是当相机的X轴旋转超过90度时,UI的X轴和Y轴会发生反转。

三、解决方案

所以解决方案是使Camera的up方向为向上方向,代码为:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class ArmAngleUI : MonoBehaviour
{
    private Camera cam;

    private void OnEnable()
    {
        cam = Camera.main;
    }

    private void Update()
    {
        Vector3 adjustedForward = cam.transform.forward;
        Vector3 adjustedUp = cam.transform.up;

        // 创建一个旋转,使UI正面对准摄像机的forward方向,并保持摄像机的up方向作为"向上"
        transform.rotation = Quaternion.LookRotation(adjustedForward, adjustedUp);
    }
}

相关文章:

  • Operator <=> (spaceship operator)
  • AI赋能办公效率的革命(以DeepSeek为例)
  • AI日报 - 2025年3月14日
  • C语言 第四章 数组(3)
  • 【微知】tmux如何在一个会话的1个窗口中水平分割或者垂直分割窗口?(垂直 Ctrl + b, %; 切换Ctrl + b, 方向键; ctrl d关闭)
  • 电子学会—2024年12月青少年软件编程(图形化)二级等级考试真题——魔法扫帚
  • 使用 PresentMon 获取屏幕帧率
  • 用于 RGB-D 显著目标检测的点感知交互和 CNN 诱导的细化网络
  • 21.dirsearch:Web 路径扫描工具
  • C语言高级进阶3
  • “Ubuntu禁止root用户通过SSH直接登录”问题的解决
  • 58.Harmonyos NEXT 图片预览组件架构设计与实现原理
  • hackme靶场攻略
  • CSV文件保存后内容缩在首格内
  • 基于Java 童装在线销售系统(源码+lw+部署文档+讲解),源码可白嫖!
  • conda创建Python虚拟环境的原理
  • 线性代数(1)用 excel 计算鸡兔同笼
  • d3_v7 基于 d3.arc()生成径向柱状图
  • CMake
  • 多线程与并发编程 面试专题
  • 网站建设报价套餐/互联网广告销售
  • 门户网站建设模板/成都最新数据消息
  • 海口网站建设王道下拉棒/推广普通话海报
  • 专注网站建设与优化/青岛做网络推广的公司有哪些
  • 大连网页网站制作/seo云优化是什么意思
  • 南昌做网站的公司多不多/上海seo顾问