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,调整三条轨道的半径和高低

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

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

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值