6-1. 摄像机跟随及攻击抖动实现
Cinemachine
安装 cinemachine

添加 cinemachine

添加完之后,需要将 Player 作为 Cinemachine 的 Follow 对象

之后摄像机默认就能跟随玩家了,我们还可以调整一些参数

通过设置 Dead Zone 给摄像机一个缓冲值,中心点没有离开缓冲区域的时候,摄像机是不会移动的

cinemachine 扩展

Cinemachine 有很多扩展,像素游戏可以使用 CinemachinePixelPerfect,CinemachineConfiner2D 可以限制摄像机的移动范围,CinemachineImpluseListener 可以是屏幕发生震动
给 cinemachine 添加区域限定
首先给 cinemachine 添加 CinemachineConfiner2D 扩展


首先画出需要限定的范围(注意必须是一个 trigger),然后它绑定到 Cinemachine Confiner 2D 上面,之后摄像机就不会离开 bounds 画的区域了
为了以后切换场景后可以自动找到 Bounds,我们给 Bounds 对象添加一个 Bounds 标签,然后给 Virtual Camera 绑定一个 CameraControl 组件


这段代码在初始的时候获取了 CinemachineConfiner2D 组件,然后在 Start 的时候获取摄像机的边界,并赋值给 CinemachineConfiner2D,注意赋值完之后需要 InvalidateCache
震动反馈
添加扩展
首先给 cinemachine 添加 CinemachineImpulseListener 扩展

因为我们是 2D 游戏,所以要勾选 Use 2D Distance
添加振动源

把振动源放到 Vitual Camera 上面

使用 ScriptableObject 产生事件


使用刚才创建好的 VoidEventSO 生成一个 Event,起名叫 CameraShake Event


不管是 玩家、怪物受伤或者死亡,都需要产生事件
振动源监听 ScriptableObject 的事件



浙公网安备 33010602011771号