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)
我的建议是创建一个具有您所需的距离和位置的新虚拟摄像机,并禁用其游戏对象开始。然后,您可以从脚本中禁用当前摄像头并启用新摄像头,将当前摄像头更改为新摄像头。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)