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
不管是 玩家、怪物受伤或者死亡,都需要产生事件
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?