Cinemachine作为Unity官方的解决方案,致力于帮助开发者高效的实现游戏中的相机系统。下面就就给大家介绍下Cinemachine的官方实例。
1、2D Camera
搭建一个快速场景,MainCamera选择Orthographic。在Cinemachine下有Create 2D Camera,在生成的相机中设置follow,同时注意body的设置,如下图所示
在虚拟相机中还需要添加Cinemachine confiner组件,点击下图中的Add Extension,在弹出的下拉列表中,选择Cinemachine Confiner。用来后处理虚拟相机的位置,限定虚拟相机位置到特定的范围内。
为我们的虚拟相机添加一个边界的碰撞形状。目前的碰撞只支持PloygonCollider。给一个2D物体添加一个PloygonCollider,拖入即可。
2、Blendlist Camera
在Cinemachine下有Create BlendList Camera,在BlendList Camera下默认有两个虚拟相机。其实你还可以手动添加其他虚拟相机。分别设置Blendlist下相机的照射位置,Blendlist Camera通过时间来切换不同相机的播放,按照顺序从上往下播放。
Hold 表示激活下一个虚拟相机,等待的时间,单位秒;
sec 表示混合动画的时间,单位也是秒。
3、Dolly
Dolly有两种设置,一个是轨道相机,一个是轨道物体
1.轨道相机,Create Dolly Camera With Track。系统会生成两个物体,一个是虚拟相机,一个是轨道设置。
勾选Auto Dolly,会让虚拟相机控制主相机自动跟随物体,并尽可能的接近跟随物体,会在下图中的绿色轨道上移动。
点击+号,创建新的路径点。
2.轨道物体 Create Dolly Track With Cart,系统会生成两个物体,一个是轨道路径DollyTrack2,和上面的一样,一个是带有Cinemachine Dolly Cart脚本的DollyCart1,把要按轨道行驶的物体放到DollyCart1节点下就可以了,同时在DollyCart1节点设置速度即可。
4、Single follow Camera
1.简单的跟随。这个比较简单,设置虚拟相机,并设置follow对象,如图
2.固定视角跟随。也就是固定Fov跟随,如图,在虚拟相机添加一个Cinemachine Follow Zoom组件
5、Target Group Camera
多目标追踪相机,Create Target Group Camera
在TargetGroup下添加Target,并可设置权重和半径,在虚拟相机中的Follow和Look At都设置为TargetGroup,并把Aim模式设置为Group Composer,如图所示。
6、FreeLook Camera
Create FreeLook Camera,设置第三人称,比较简单,可以虚拟相机随着鼠标的移动而控制主相机移动。
7、Mixing Camera
Create Mixing Camera, 生成的虚拟相机子物体还有两个虚拟相机,成像是两个子虚拟相机共同的结果
8、ClearShot Camera
ClearShot Camera可以管理一组子虚拟相机。如果子相机具有CinemachineCollider扩展,他们将进行分析目标障碍场景,最佳目标距离等项目,并对其进行评估将镜头质量返回给ClearShot,然后他会选择最好的一个。如果多个子相机具有相同的镜头质量,则具有最高优先级的相机将是选择。
上面的例子是,首先设置一个虚拟相机LookAt这个Cube物体,设置优先级priority为12,当Cube被白色的墙挡住时,切换一个虚拟相机,设置优先级priority为11,当Cube移动一段距离,又可以被之前的虚拟相机看到时,因为第一个虚拟相机优先级更高,会再切换到第一个虚拟相机。
9、StateDriven Camera
Create StateDriven Camera,激活特定镜头时进入特定的动画状态,结合Animator动画系统来使用。
在控制角色移动时,当改变动画状态,虚拟相机也会相应切换。
这是Demo的Github地址https://github.com/aaBaO/DemoRepository中的WhatIsCinemachine文件夹。