在脚本中更改 Cinemachine 的摄像机距离

Enr*_*vis 5 c# unity-game-engine

在我的(2D)游戏中,我正在制作一个缩小相机的功能,并且我正在使用 cinemachine。有没有办法在脚本中做到这一点?我查看了文档并到处查看,但没有找到任何东西。只有如何改变视野(这对我不起作用)。

![在此输入图像描述] 1

提前致谢!

小智 8

在偶然发现您遇到的类似问题后,我发现您可以这样做:

CinemachineComponentBase componentBase = virtualCamera.GetCinemachineComponent(CinemachineCore.Stage.Body);
if (componentBase is CinemachineFramingTransposer)
{
    (componentBase as CinemachineFramingTransposer).m_CameraDistance = 30; // your value
}
Run Code Online (Sandbox Code Playgroud)


Spe*_*eam 1

我的建议是创建一个具有您所需的距离和位置的新虚拟摄像机,并禁用其游戏对象开始。然后,您可以从脚本中禁用当前摄像头并启用新摄像头,将当前摄像头更改为新摄像头。Cinemachine 将自动处理到新摄像机的过渡。

这是我用来以这种方式管理多个摄像机的方法。

public GameObject[] Cameras;

public void ActivateCamera(int index)
{
    for (int i = 0; i < Cameras.Length; i++)
    {
        if (i == index)
        {
            Cameras[i].SetActive(true);
        }
        else
        {
            Cameras[i].SetActive(false);
        }
    }
}
Run Code Online (Sandbox Code Playgroud)