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

Dieser Bereich ist nur für Premium-Benutzer verfügbar. Bitte führen Sie ein Upgrade durch, um auf diesen Abschnitt zuzugreifen.

Upgrade durchführen

Mindmap

plate

Dieser Bereich ist nur für Premium-Benutzer verfügbar. Bitte führen Sie ein Upgrade durch, um auf diesen Abschnitt zuzugreifen.

Upgrade durchführen

Keywords

plate

Dieser Bereich ist nur für Premium-Benutzer verfügbar. Bitte führen Sie ein Upgrade durch, um auf diesen Abschnitt zuzugreifen.

Upgrade durchführen

Highlights

plate

Dieser Bereich ist nur für Premium-Benutzer verfügbar. Bitte führen Sie ein Upgrade durch, um auf diesen Abschnitt zuzugreifen.

Upgrade durchführen

Transcripts

plate

Dieser Bereich ist nur für Premium-Benutzer verfügbar. Bitte führen Sie ein Upgrade durch, um auf diesen Abschnitt zuzugreifen.

Upgrade durchführen
Rate This

5.0 / 5 (0 votes)

Ähnliche Tags
游戏开发Doom风格枪械机制敌人AI目标系统射线检测玩家动量Unity3D脚本编程游戏测试
Benötigen Sie eine Zusammenfassung auf Englisch?