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 的事件
项目相关代码
代码仓库:https://gitee.com/nbda1121440/2DAdventure.git
标签:跟随,抖动,摄像机,添加,Cinemachine,2D,cinemachine,CinemachineConfiner2D From: https://www.cnblogs.com/hellozjf/p/18036778