Unity近战战斗系统:第三人称动作与敌人AI

Unity近战战斗系统:第三人称动作与敌人AI-CG Tuto
Unity近战战斗系统:第三人称动作与敌人AI
此内容为付费资源,请付费后查看
知识点:30
付费资源
图片[1]-Unity近战战斗系统:第三人称动作与敌人AI-CG Tuto

Create a Melee Combat System in Unity and C#

课程目标与系统设计

  • 课程围绕 Unity 中的第三人称近战战斗系统展开,包含连招、反击和具备协调行为的敌人 AI;系统按模块化、数据驱动和可扩展的方式设计,并采用整洁编码实践。
  • 课程描述的战斗方式是敌人绕玩家移动并协调进攻,而不是同时无序攻击;攻击方式也可从剑攻击改为拳击或踢击,无需为此修改代码。

第三人称控制器

  • 从头搭建第三人称控制器,以此介绍游戏编程基础,并涉及动画根运动和根变换;项目设置使用 Unity 3D URP 模板创建测试场景、地面和棋盘格材质。
  • 制作跟随玩家的第三人称相机,使其随鼠标旋转、限制俯仰角,并使用构图偏移观察角色胸部;还设置反转和光标锁定。
  • 实现相机相对的角色移动,导入 Mixamo FBX 角色并提取纹理;用平面旋转和 Quaternion.RotateTowards 平滑旋转角色。
  • 使用 Mixamo 人形重定向设置待机、行走和跑步动画,创建 Avatar 并关闭根运动;再通过 Animator Controller 和 Blend Tree 按移动量平滑混合动画。
  • 使用 Character Controller 处理碰撞,并通过球体检测和 Layer Mask 手动检查地面、实现重力;配置左摇杆移动、右摇杆控制相机,并映射鼠标和摇杆输入轴。

攻击、受击与连招架构

  • 导入 Mixamo 挥剑动画,配置 Animator 覆盖层,并通过协程处理攻击时序和输入,建立模块化近战攻击。
  • 为玩家手部添加剑,并为敌人设置受击动画;攻击过程划分为蓄力、命中和冷却三个状态,只在命中阶段启用剑的碰撞体,以避免误击并支持连招。
  • 使用 Scriptable Objects 架构攻击,通过攻击列表添加多个攻击并组合连招;以动画名称和起止时间替代硬编码值,使设计者可以编辑攻击组合。
  • 为手和脚设置不同命中框,并按攻击启用相应的命中框;课程以使用右脚攻击为例说明不同攻击命中区域的配置。

敌人状态与战斗移动

  • 用泛型有限状态机组织敌人 AI,将待机和追击分别实现为独立状态类,并使用 enter、execute、exit 处理状态进入、执行和退出。
  • 通过带球形碰撞体的视野传感器检测范围和视野角内的玩家,再由 NavMesh Agent 追击;设置停止距离并配合动画。
  • 实现敌人追击、保持防御待机或绕玩家移动的战斗移动状态,并在待机、追击和绕行之间平滑切换。
  • 让敌人在战斗移动时随机绕玩家移动,使用计时器、随机范围和左右绕行动画混合;后续改用 NavMesh Agent 移动以绕行,并处理障碍物和其他敌人,通过二维 Blend Tree 使用前进与侧移速度驱动动画。

协同攻击、撤退与反击

  • 使用单例敌人管理器和攻击状态,让多个敌人追击玩家并依次发动攻击。
  • 攻击后通过向后行走动画和 NavMesh 撤退状态后退;撤退时保持面向玩家,并在距离达到三米时切换状态。
  • 通过连招计数、冷却检查和公开攻击列表中的随机选择,让敌人执行单次攻击或随机连招。
  • 使用 Mixamo 的攻击者与受击者动画配对实现反击,设置反击起手窗口,并处理 Animator 状态、角色旋转和死亡逻辑。

目标选择与战斗扩展

  • 根据摄像机朝向选择最近的敌人作为目标,用发光着色器突出显示,并每 0.1 秒更新目标。
  • 实现锁定战斗模式,让玩家锁定敌人、面向目标并在移动时侧移;锁定可由输入或攻击触发,课程也处理相关问题。
  • 设置方向攻击和攻击时转向:受击时面向攻击者,朝选定方向攻击,并依据前方方向和最近敌人的逻辑选择目标;将攻击映射到手柄 X 键、锁定映射到左扳机。
  • 受击后通过 getting hit 状态使敌人进入硬直,并使用委托和事件处理动作,同时调整目标查找逻辑;还加入基于 Mixamo 旋转挥斩动画、距离检查和朝目标移动的远距离攻击。
  • 在攻击时间窗口内才向目标移动,使用移动起止时间和动画归一化时间控制移动,并跟踪当前目标与玩家位置以限制为单目标命中;随后处理空值检查、受击时停止协程、远距离攻击存在性检查和动态选择攻击者等边界情况。
  • 实现玩家和敌人共用的生命值处理,包括可复用的受伤方法、生命值限制和死亡反应;敌人发现目标时,通过重叠盒、警戒范围和共享目标通知附近敌人。

适合人群

  • 面向希望学习中级概念并创建可复用系统的 Unity 初学者。

前置基础

  • 需要了解 C# 基础,例如条件判断和循环。
  • 需要了解 Unity 基础。

使用软件

  • 课程使用 Unity 和 C#;项目设置使用 Unity 3D URP 模板。
⏱ 课程时长10.9小时
🎬 视频尺寸1920x1080
📦 配套资源有
📝 学习笔记有
🌍 语言 / 字幕精翻原声字幕 | 精配国语
🧾 课程编号260500
💾 资源大小5.51G

B 站粉丝专享:全套课程配套工程资源
包含:课件、资产、工程(内容以实际提供的为准)

课程学习笔记
本课程整理的学习笔记与补充资料

本站内容用于软件技术学习与流程研究。请支持课程原作者,并遵守相关软件及素材许可协议。

© 版权声明
THE END
喜欢就支持一下吧
点赞14 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容