今天来看一下官方Demo的任意门具体实现方式吧,通过Package Manager导入Cinemachine插件,在导入Cinemachine Sample后,我们可以在Assets文件夹下Cinemachine/2.6.17(这个是你下载的cinemachine版本号)/Cinemachine Example Scenes/Scenes/Anywhere Door中看具体的Demo。
具体原理是通过RT,Cinemachine来实现的,让我们来分析一下。
场景摆放
首先我们需要在一个场景,同时做出2个不同的房间,在房间中分别放置任意门和人物载体,这里有个要点需要注意的,任意门和人物载体的距离和角度,在2个房间中需要一模一样才行。2个人物载体要保证有相同的运动组件(Player Movement)
房间1
房间2
RT配置
2个人物载体都挂有摄像机,得到的RT图像分别添加到对面的门上。
Cinemachine Trigger Action组件
看起来像是Cinemachine官方为了这个玩法专门编写的一个简单组件,这个实现核心在于On Object Enter,将target设置为对立的那个门,将Action设置为Activate。这样,当进入这个门的碰撞体时,自然会把另一个人物载体的virtualMachine的优先级设置为最高。这样就实现了视角切换。