Cinemachine虚拟摄像机在对象之间过渡,同时保持死区

  • 3d游戏
  • 2个游戏对象:A和B。(均在运行时生成)

我希望从对象A平滑过渡到对象B,但前提是对象B在vcam的盲区之外。 Vcam应以静态旋转方式查看对象。 (只有相机位置应该改变)

我认为我必须使用:

Follow property - because it only affects vcam transform
Framing Transposer - to use dead zones in body component

我尝试用B生成新的vcam并禁用了第一个vcam-这样可以在摄像机之间进行平滑过渡,但是即使A和B在第1个和第2个vcam的死区之内,也可以这样做。

仅当新游戏对象位于先前vcam的死区之外时,如何才能在两个游戏对象之间实现平稳的相机过渡?

我知道我可以通过将vcam从A移到B来完成此操作,这应该适用于死区,但我正在寻找更清洁的解决方案

haha004 回答:Cinemachine虚拟摄像机在对象之间过渡,同时保持死区

Unity工作人员Gregoryl提供了如何实现我在问题中所描述的内容的说明。

当事情进出死区时,

CM不会通知您。

可以通过轮询B相对于相机的位置并手动计算CameraPosToB和CameraForward之间的角度是否足够大,然后激活第二个vcam来完成所需的操作。

这是代码的一部分-做他所描述的事情:

var angleToPlayer = Vector3.Angle(mainCamera.transform.forward,(player.transform.position - mainCamera.transform.position).normalized);
if (angleToPlayer > 20f)
{
    cameraWatchingPlayer.enabled = false;
    Destroy(cameraWatchingPlayer.gameObject,3f);

    InstantiateCamera(posX,posZ,player.transform);
}
本文链接:https://www.f2er.com/3151841.html

大家都在问