How to make a DOOM CLONE in Unity || E1M2 Enemy Hit Detection

SpawnCampGames
4 Dec 202023:00

Summary

TLDR本视频教程介绍了如何为游戏角色设置类似《毁灭战士》的枪械行为和目标敌人的能力。首先,通过调整玩家的移动脚本,为角色添加了动量效果,使其移动更加自然。接着,创建了基础的敌人系统,包括敌人健康值的管理。然后,详细讲解了如何为枪械添加检测敌人和视线检测的功能,并通过射线检测来确定是否对敌人造成伤害。最后,通过调整伤害值和设置射线层遮罩,完成了一个基本的枪械和敌人交互系统,为游戏开发提供了一个坚实的基础。

Takeaways

  • 🎮 视频讲解了如何设置枪械行为和敌人目标系统,模仿《毁灭战士》(Doom)风格的瞄准辅助功能。
  • 🔧 首先,需要解决玩家的移动惯性问题,使其不会像当前那样突然停止,而是模仿《毁灭战士》中的平滑减速。
  • 🗂️ 组织项目窗口,创建了动画相关的文件夹,包括动画器和动画剪辑。
  • ⏩ 通过修改玩家移动脚本,引入了输入向量的线性插值(Lerp),实现平滑的移动效果。
  • 🚶 更新了玩家移动逻辑,区分了按键持续按住和释放时的不同行为。
  • 🔫 创建了一个基本的敌人系统,包括敌人健康值,并为敌人添加了刚体组件用于碰撞检测。
  • 📁 建立了一个敌人管理器,用于跟踪玩家面前的敌人,并在触发器进入和退出时添加或删除敌人。
  • 🔒 通过射线检测(Raycast),确保玩家在射击时有视线范围内的敌人才能造成伤害。
  • 💥 实现了枪械的射击功能,包括射击频率控制和对敌人造成伤害的逻辑。
  • 🎯 根据敌人与玩家的距离,调整了伤害值,实现了距离越远伤害越小的效果。
  • 🛠️ 视频最后提供了一个基础框架,为未来游戏开发提供了扩展的可能性。

Q & A

  • 视频中提到的'doom style'瞄准辅助是如何实现的?

    -视频中通过设置枪的射线检测(raycast)来实现'doom style'瞄准辅助,允许玩家射击高于或低于玩家位置的敌人,并检查是否在视线范围内。

  • 如何在游戏中实现玩家的动量(momentum)效果?

    -通过在玩家移动脚本中使用线性插值(lerp)将输入向量平滑地向零过渡,实现了类似Doom游戏中玩家移动的动量效果。

  • 视频中提到的'player move script'是做什么用的?

    -'player move script'用于控制玩家的移动。它接收输入值,并根据这些值来移动玩家角色。

  • 如何在游戏中创建一个基本的敌人系统?

    -通过创建一个带有刚体(Rigidbody)组件的3D胶囊形状的敌人对象,并为其添加敌人(enemy)组件和敌对管理器(enemy manager)脚本来实现基本的敌人系统。

  • 视频中提到的'gun trigger'组件的作用是什么?

    -'gun trigger'组件是一个触发器(trigger)类型的盒子碰撞器(Box Collider),用于检测玩家枪口前方的敌人,并在玩家射击时触发事件。

  • 如何在游戏中实现敌人的健康系统?

    -通过在敌人脚本中添加一个私有浮点数变量来表示敌人的健康值,并提供一个公共的'take damage'方法来减少健康值,当健康值降至零或以下时,敌人将被销毁。

  • 视频中提到的'enemy manager'脚本的作用是什么?

    -'enemy manager'脚本用于管理游戏中所有敌人的集合,提供添加和移除敌人的方法。

  • 如何在游戏中实现枪械的射击功能?

    -通过检测鼠标左键的按下事件,并在满足射击间隔(fire rate)条件时,调用'fire'方法来实现射击功能。

  • 视频中提到的射线检测(raycast)如何用于判断敌人是否在玩家视线内?

    -通过从玩家位置发出射线,检测是否能够直接击中敌人位置,如果可以,则认为敌人在玩家视线内。

  • 如何在游戏中实现不同距离下的敌人受到不同伤害的效果?

    -通过计算玩家与敌人之间的距离,并根据这个距离来调整对敌人造成的伤害值,距离越远,伤害越小。

  • 视频中提到的'layer mask'在射线检测中的作用是什么?

    -'layer mask'用于指定射线检测时应该忽略的层,例如在这个视频中,射线检测需要忽略枪的层,以防止误检测到枪本身。

Outlines

plate

This section is available to paid users only. Please upgrade to access this part.

Upgrade Now

Mindmap

plate

This section is available to paid users only. Please upgrade to access this part.

Upgrade Now

Keywords

plate

This section is available to paid users only. Please upgrade to access this part.

Upgrade Now

Highlights

plate

This section is available to paid users only. Please upgrade to access this part.

Upgrade Now

Transcripts

plate

This section is available to paid users only. Please upgrade to access this part.

Upgrade Now
Rate This

5.0 / 5 (0 votes)

Related Tags
游戏开发Doom风格枪械机制敌人AI目标系统射线检测玩家动量Unity3D脚本编程游戏测试
Do you need a summary in English?