【发布时间】:2021-05-23 03:03:28
【问题描述】:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using Cinemachine;
public class CamerasManager : MonoBehaviour
{
public CinemachineFreeLook playerCameraCloseLook;
public CinemachineFreeLook playerCameraGameplayLook;
public float timeBeforeSwitching;
public float clampMin;
public float clampMax;
public float pitch;
public float speed;
private float brainBlendTime;
// Start is called before the first frame update
void Start()
{
brainBlendTime = Camera.main.GetComponent<CinemachineBrain>().m_DefaultBlend.m_Time;
StartCoroutine(SwitchCameras(timeBeforeSwitching));
}
// Update is called once per frame
void LateUpdate()
{
if (playerCameraGameplayLook != null)
{
pitch += speed * Input.GetAxis("Mouse Y");
pitch = Mathf.Clamp(pitch, clampMin, clampMax);
playerCameraGameplayLook.GetRig(1).GetCinemachineComponent<CinemachineComposer>().m_TrackedObjectOffset.y = pitch;
}
}
IEnumerator SwitchCameras(float TimeBeforeSwitching)
{
yield return new WaitForSeconds(TimeBeforeSwitching);
playerCameraCloseLook.enabled = false;
playerCameraGameplayLook.enabled = true;
PlayerLockManager.PlayerLockState(false);
StartCoroutine(BlendTime());
}
IEnumerator BlendTime()
{
yield return new WaitForSeconds(brainBlendTime);
PlayerLockManager.PlayerLockState(true);
}
}
我可以使用 Cinemachine CinemachineFreeLook 左右上下左右查看,但是当在此脚本中使用钳位时,然后用鼠标四处移动相机时,看起来相机有点卡顿/抖动。
如果没有夹紧,在 LateUpdate 中,相机可以正常工作,但我无法将相机从左到右上下移动,只能左右移动。
我尝试自己进行夹紧的原因是,在 FreeLookCamera 中的 Axis Control > Y Axis 中,如果我在上下移动相机时将速度设置为 100 或 300,它也会放大/out 在播放器上,我不想缩放,但没有删除/禁用缩放的选项。
【问题讨论】: