Unity Cinemachine FreeLookCamera快速建立一个第三人称相机控制器

效果展示

 代码

using UnityEngine;
using Cinemachine;
public class CameraController : MonoBehaviour
{
    private CinemachineFreeLook freeLookCamera;
    void Start()
    {
        freeLookCamera= GetComponent<CinemachineFreeLook>();
    }

    // Update is called once per frame
    void Update()
    {
        if(Input.GetMouseButton(0))
        {
            freeLookCamera.m_XAxis.m_InputAxisValue = Input.GetAxis("Mouse X");
            freeLookCamera.m_YAxis.m_InputAxisValue = Input.GetAxis("Mouse Y");
        }
        else
        {
            freeLookCamera.m_XAxis.m_InputAxisValue = 0;
            freeLookCamera.m_YAxis.m_InputAxisValue = 0;
        }
    }
}

操作步骤

1.PackageManager中Packages选择UnityRegistry,搜索Cinemachine并安装

2.在Hierarchy窗口中右键创建新的FreeLookCamera

 3.将上面的脚本挂在新创建的相机上

FreeLookCamera关键参数功能

Follow和LookAt

Follow: 摄像机跟随移动的目标,一般选择玩家

LookAt:摄像机看向的点,可以在玩家下面创建一个空物体,LookAt设置为这个空物体,可以很方便去调整摄像机看向的点

AxisControl轴控制

Y Aixs控制摄像机高低位置的轴,X Aixs控制水平方向的轴

Value: 在轴上的相对位置,决定摄像机具体的位置

Speed:摄像机转向的最大速度

Accel Time/Decel Time:摄像机加速到最大速度或减速到0需要的时间,例如当Accel Time设置为10,Input Axis Value为1时,摄像机的旋转速度在10秒内逐渐加速直到最大速度

Input Axis Name:决定InputAxisValue的输入的名称,默认为Mouse X和Mouse Y,在ProjectSettings->InputManager中可以调整对应的名称,由于本文章采用代码控制输入,因此将该名称设置为空

Input Axis Value:在对应轴上的输入,最小为0,最大为1,如果输入在0~1之间,摄像机旋转的速度会变慢

Orbits摄像机轨道

当选中摄像机并打开Gizmos时,在Scene窗口可以看见摄像机的轨道,摄像机将会在轨道上运动

BindingMode:摄像机的绑定模式,不同的绑定模式会有不同的追踪效果下面是Simple Follow With World Up和World Space的区别

Simple Follow With World Up
World Space

TopRig,MiddleRig,ButtomRig,调整三条轨道的半径和高低

博客创作不易,求点赞求关注~

如果有不准确的地方欢迎在评论区指出

猜你喜欢

转载自blog.csdn.net/m0_72922928/article/details/134209366
今日推荐