c# - Unity3D - Cinemachine - 相机旋转问题
问题描述
我的问题是我的相机在停止鼠标旋转后旋转了一点。
我使用 Cinemachine 虚拟摄像机。角色随镜头转动。
该脚本不是来自我,但它适用于制造商。该脚本来自以下播放列表。
https://www.youtube.com/watch?v=CS7MudfyDzM&list=PLyBYG1JGBcd1E4CigRSDE9YdH8syiDY6-
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class CharacterAiming : MonoBehaviour
{
public float turnSpeed;
Camera mainCamera;
public Transform cameraLookAt;
public Cinemachine.AxisState xAxis;
public Cinemachine.AxisState yAxis;
// Start is called before the first frame update
void Start()
{
mainCamera = Camera.main;
Cursor.visible = false;
Cursor.lockState = CursorLockMode.Locked;
}
void FixedUpdate()
{
xAxis.Update(Time.fixedDeltaTime);
yAxis.Update(Time.fixedDeltaTime);
cameraLookAt.eulerAngles = new Vector3(yAxis.Value, xAxis.Value, 0);
float yawCamera = mainCamera.transform.rotation.eulerAngles.y;
transform.rotation = Quaternion.Slerp(transform.rotation, Quaternion.Euler(0, yawCamera, 0), turnSpeed * Time.fixedDeltaTime);
Debug.Log(Quaternion.Slerp(transform.rotation, Quaternion.Euler(0, yawCamera, 0), turnSpeed * Time.fixedDeltaTime));
}
}
解决方案
好的,我修好了。将行移动cameraLookAt.eulerAngles = new Vector3(yAxis.Value, xAxis.Value, 0);
到函数的末尾。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class CharacterAiming : MonoBehaviour
{
public float turnSpeed;
Camera mainCamera;
public Transform cameraLookAt;
public Cinemachine.AxisState xAxis;
public Cinemachine.AxisState yAxis;
// Start is called before the first frame update
void Start()
{
mainCamera = Camera.main;
Cursor.visible = false;
Cursor.lockState = CursorLockMode.Locked;
}
void FixedUpdate()
{
xAxis.Update(Time.fixedDeltaTime);
yAxis.Update(Time.fixedDeltaTime);
float yawCamera = mainCamera.transform.rotation.eulerAngles.y;
transform.rotation = Quaternion.Slerp(transform.rotation, Quaternion.Euler(0, yawCamera, 0), turnSpeed * Time.fixedDeltaTime);
cameraLookAt.eulerAngles = new Vector3(yAxis.Value, xAxis.Value, 0);
}
}
推荐阅读
- react-native - 在 ubuntu 20.04 中运行 npm install -g create-react-app 时出错
- node.js - 对于模型“Project”的路径“_id”处的值“req.params.id”,转换为 ObjectId 失败
- c# - 使用 Webclient 一次下载多个文件
- bash - 使用“set -o errtrace”时,单语句子shell 似乎没有继承 ERR 陷阱
- node.js - 当我告诉节点运行一个文件时,它运行两个文件
- javascript - 如何使用javascript将参数传递给目标url
- reactjs - 如何在 Ag-grid 中按 ObjectID (_id) 过滤记录
- arrays - 如何从具有多个维度的numpy数组中删除重复项
- node.js - 如何在 docker CMD 命令中运行多个 npm 脚本
- c# - 模型属性更改时的 WPF 调用方法