【发布时间】:2021-05-14 05:41:54
【问题描述】:
在我的 (2D) 游戏中,我正在制作一个缩小相机的功能,并且我正在使用 Cinemachine。有没有办法在脚本中做到这一点?我查看了文档和所有地方,但没有找到任何东西。只有如何改变视野(这对我不起作用)。
]1
提前致谢!
【问题讨论】:
在我的 (2D) 游戏中,我正在制作一个缩小相机的功能,并且我正在使用 Cinemachine。有没有办法在脚本中做到这一点?我查看了文档和所有地方,但没有找到任何东西。只有如何改变视野(这对我不起作用)。
]1
提前致谢!
【问题讨论】:
在偶然发现您遇到的类似问题后,我发现您可以这样做:
CinemachineComponentBase componentBase = virtualCamera.GetCinemachineComponent(CinemachineCore.Stage.Body);
if (componentBase is CinemachineFramingTransposer)
{
(componentBase as CinemachineFramingTransposer).m_CameraDistance = 30; // your value
}
【讨论】:
我的建议是创建一个具有您想要的距离和位置的新虚拟相机,并禁用它的游戏对象开始。然后,通过脚本,您可以通过禁用当前摄像头并启用新摄像头来将当前摄像头更改为新摄像头。 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);
}
}
}
【讨论】: