ue3dUnityC#与Cinemachine的交互基础

UnityC#与Cinemachine的交互基础

分类:

在 Unity 游戏开发中,脚本将成为触发摄像机交换的主要方法。下面的内容咋们一起来聊一聊如何使用 C# 与 Cinemachine 进行交互。

ue3d - UnityC#与Cinemachine的交互基础

首先,需要向 C# 脚本添加一个新库。

using System.collections;
using System.collections-Generic;
using UnityEngine;
using Cinemachine; // 添加Cinemachine

现在需要获取对相机的引用,最简单的方法是使用数组。

[serializeField]
private Gameobject[] _cameras;

在 Unity 中重新编译并返回,可以将相机拖到阵列中。

ue3d - UnityC#与Cinemachine的交互基础

现在可以在脚本中引用这个相机。

例如当我按下 F 键时,第一个摄像机将关闭(禁用),Cinemachine 将自动移动到下一个可用的摄像机。

如下:

void Update()
{
    if (Input.GetKeyDown(KeyCode.F) && _cameras[0].activeInHierarchy)
    {
       _cameras[0].setActive(false);
    }
ue3d - UnityC#与Cinemachine的交互基础

摄像机优先级决定了 Cinemachine 下一步将使用哪个摄像机。但是,一次只激活需要的虚拟摄像机也是一种很好的做法。

这里还可以使用脚本引用 Cinemachine 摄像机控制窗口内的任何内容,此时需要对活动摄像机的引用:

private Cinemachinelirtualcamera _cam;
// 在第一个帧更新之前开始调用
Unity Message | 0 references
void start()
{
     _cam = Getcomponent<Cinemachinevirtualcamera>();
}

在更新中,添加了以下行,将 FoV 设置为 40,默认值为 60。

    if (Input.GetKeyDown(Keycode.Space))
    {
        _cam.GetComponent<CinemachineVirtualCamera>().m_Lens.Fieldofview = 40;
    }
}
ue3d - UnityC#与Cinemachine的交互基础

其实可以在脚本中访问每个摄像机的 CinemachineVirtualCamera 组件中的任何属性,包括转场、观看位置、跟随内容、目标、噪声和转场。

对于大多数设置,建议花一些时间尝试一下,看看每个设置的作用以及如何使用这些属性来改进自己的相机。

相关信息

  • 类型:知识
  • 字数:365
  • 字符:1462
  • 适用软件:Unity
  • 说明:无
  • 编号:93156

热门内容

提示:3D天堂作为服务提供者,尊重网络版权及知识产权,对某些行为的发生不具备充分的监控能力,若无意间侵犯到您的权利,请 联系我们,我们会在收到信息后尽快给予处理。

本站文章版权归本站自创作者所有,未经允许不得转载!