Unity3d Cinemachine虚拟摄像机在保持死区的同时在对象之间切换 3d游戏 2个游戏对象:A和B(都是在运行时生成的)
我想得到从对象a到对象B的平滑过渡,但前提是,对象B在vcam的死区之外。 Vcam应观察静态旋转的对象。(只有摄像头位置应该改变) 我假设我必须使用:Unity3d Cinemachine虚拟摄像机在保持死区的同时在对象之间切换 3d游戏 2个游戏对象:A和B(都是在运行时生成的),unity3d,cinemachine,Unity3d,Cinemachine,我想得到从对象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位于第
Follow property - because it only affects vcam transform
Framing Transposer - to use dead zones in body component
我尝试过用B生成新的vcam,并禁用了第一个vcam-这可以在摄像机之间实现平滑过渡,但它总是这样,即使A和B位于第一个和第二个vcam的死区内
只有当新的游戏对象在先前vcam的死区之外时,我如何才能在两个游戏对象之间实现平滑的相机转换
我知道我可以通过移动物体,然后将vcam从A移动到B,这应该可以处理死区,但如果可能的话,我正在寻找更清洁的解决方案。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);
}
你试过虚拟相机的follow属性了吗?它似乎没有链接到实际的unity Camerays,我试过了。跟随转置器和跟随帧转置器,但没有运气。(与第二种情况相同)