Unity 3D 人物移动朝向跟随摄像机(第一人称)

您所在的位置:网站首页 第一人称视角图片倒垃打圾 Unity 3D 人物移动朝向跟随摄像机(第一人称)

Unity 3D 人物移动朝向跟随摄像机(第一人称)

2024-07-11 21:11| 来源: 网络整理| 查看: 265

文章目录 原理详细解析 代码讲解核心部分详细解析理解 Quaternion.AngleAxis 完整代码

原理

以人物身体旋转控制镜头左右滑动 以摄像机旋转控制镜头上下滑动

详细解析

首先我们要知道 摄像机是作为人物的子物体的(充当眼睛) 所以当人物旋转时 摄像机会跟随它朝相同的方向旋转相同的角度 从而达到 眼睛(摄像机)注视的方向一定是人物的正前方

那么这样做有什么好处呢? 若摄像机镜头锁定为人物正前方 操控人物的移动方向就会变得非常精准

如果只单纯以摄像机来控制镜头的上下左右滑动 虽然这样也能实现全方位的第一视角 但当人物移动时 就会出现方向的错误 因为此时虽然镜头朝向变了 人物朝向却没有变 例如:你将镜头向左转90度,按 W 准备向前走,却发现向右移动了(初始方向的前) 在这里插入图片描述

所以想要移动方向精准 摄像机朝向必须和人物朝向一致 在这里插入图片描述 *注意区别两幅图人物和摄像机的朝向

代码讲解 核心部分 //俯仰 //以摄像机的旋转控制镜头上下滑动 void Pitch() { float pitchAngle = Input.GetAxis("Mouse Y") * pitchSensitivity * Time.deltaTime; Quaternion pitch = Quaternion.AngleAxis(pitchAngle, -Vector3.right); //绕X轴负方向旋转的度数 Quaternion finalAngle = playerCam.localRotation * pitch; //欧拉角转化为四元数 使摄像机旋转 //限定俯仰的角度 if (Quaternion.Angle(playerCamCenter, finalAngle)


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3