How to make a DOOM CLONE in Unity || E1M6 Doors and Keys
Summary
TLDR本视频教程介绍了如何在Doom克隆游戏中添加一个带有钥匙和敌人生成系统的门。首先创建一个空的游戏对象作为门的基础,并添加门框和门作为子对象。使用Unity的标准立方体或ProBuilder工具来构建门的模型,并确保每个部分都有碰撞器。接着,通过动画窗口创建门的关闭和开启动画,并在Animator窗口中设置动画状态和转换。为了检测玩家,添加一个触发器和脚本,当玩家触发时,根据玩家是否拥有相应的钥匙来打开门或激活敌人生成区域。最后,创建钥匙拾取脚本,并将其与门和钥匙拾取对象关联,以实现游戏逻辑。视频还展示了如何将门和钥匙拾取设置为预制件,以便在构建游戏关卡时重复使用。
Takeaways
- 🚪 在视频中,将向Doom克隆游戏中添加一个包含钥匙和敌人生成系统的门。
- 🛠️ 门将分为三部分构建:门基座、门框和门本身,使用Unity的空游戏对象和标准立方体或ProBuilder来建模。
- 🎨 为门添加材料,包括基本颜色以及红、蓝、绿三种颜色,以区分不同类型的门。
- 🔑 制作门动画,包括门的关闭状态(idle)和开启状态(open),并使用Unity的动画窗口来创建动画剪辑。
- 📂 动画剪辑将保存在动画剪辑文件夹中,并通过动画器窗口设置从默认状态到开门状态的转换。
- 👤 为检测玩家,将在门对象上添加一个盒子碰撞器,并设置为触发器,同时添加一个脚本来控制门的逻辑。
- 🔒 门脚本将检测玩家是否进入触发器,并在动画器中设置触发器来打开门。
- 👾 门还将负责在开门后激活区域内的敌人,通过设置一个公共游戏对象来控制敌人的生成。
- 🔄 创建三种不同颜色的门变体,每种门需要特定的钥匙才能打开。
- 🗝️ 玩家将有一个库存系统来存储钥匙,通过脚本控制哪些钥匙被收集。
- 🔄 制作钥匙拾取器,当玩家触发时,将更新玩家库存中的钥匙状态,并销毁钥匙对象。
Q & A
在视频中,如何为Doom克隆游戏添加门系统?
-在视频中,首先创建一个新的空GameObject作为门的基础,然后将其变换归零。接着,作为子对象添加门框和门的空GameObject,并将门的各个部分放入相应的空GameObject中。
使用Unity标准立方体构建门框和门有哪些步骤?
-使用Unity标准立方体构建门框和门的步骤包括:使用多个标准Unity立方体将它们拼接在一起形成门框和门,只要保持结构不变,任何制作方式都可以。
为什么选择使用ProBuilder来构建门?
-选择使用ProBuilder是因为它是一个强大的工具,可以在Unity中进行模型构建,类似于在Unity内部建模。
如何为门添加动画?
-为门添加动画需要打开动画窗口,选择门的空GameObject,创建新的动画剪辑,命名为'door idle',保存在动画剪辑文件夹中。然后创建另一个动画剪辑'door open',记录开门动作的关键帧。
如何设置门的动画状态?
-在Animator窗口中设置门的动画状态,创建一个触发器'open door',并在默认剪辑和'door open'剪辑之间创建过渡。
如何检测玩家是否进入门的触发区域?
-在门的主GameObject上创建一个BoxCollider,并设置为'Is Trigger'。然后添加一个名为'door'的脚本,该脚本包含逻辑以检测玩家是否进入触发区域,并在Animator中设置触发器。
如何让门在玩家触发后打开?
-在'door'脚本中,使用'void OnTriggerEnter'函数来检测玩家是否触发了门。如果是玩家,使用'doorAnim.SetTrigger'方法和字符串'open door'来打开门。
如何防止门在打开动画结束后循环播放?
-在项目窗口中找到'door open'动画,然后在Inspector中关闭'Loop Time'选项,这样门在打开后就会保持打开状态,而不会循环播放。
如何让门在打开时同时激活区域内的敌人?
-创建一个公共GameObject,命名为'area to spawn'。在门脚本中,在打开门之后,使用'areaToSpawn.SetActive(true)'来激活这个GameObject,从而激活区域内的敌人。
如何为不同颜色的门设置不同的钥匙要求?
-在门脚本中,为每种颜色的门设置一个公共布尔值(例如'requireRed', 'requireBlue', 'requireGreen'),并在脚本中检查玩家是否拥有相应的钥匙。如果玩家拥有正确的钥匙,门就会打开。
如何创建钥匙拾取物并将其添加到玩家的库存中?
-创建一个空GameObject作为钥匙拾取物的根,然后添加一个Quad作为图形,并设置其Collider为'Is Trigger'。添加一个'key pickup'脚本,并在脚本中设置相应的布尔值来表示不同类型的钥匙。当玩家触发拾取物时,将相应的布尔值设置为true,并销毁拾取物GameObject。
如何将门和钥匙拾取物转换为预制件?
-将门和钥匙拾取物居中后,拖入到Prefabs文件夹中创建预制件。创建预制件后,可以从场景中删除它们,以便在构建关卡时重复使用。
Outlines
此内容仅限付费用户访问。 请升级后访问。
立即升级Mindmap
此内容仅限付费用户访问。 请升级后访问。
立即升级Keywords
此内容仅限付费用户访问。 请升级后访问。
立即升级Highlights
此内容仅限付费用户访问。 请升级后访问。
立即升级Transcripts
此内容仅限付费用户访问。 请升级后访问。
立即升级浏览更多相关视频
Unreal Engine 5 RPG Tutorial Series - #14: Equipment System
How to make a DOOM CLONE in Unity || E1M1 First Person Player
How to make a DOOM CLONE in Unity || E1M3 Enemy AI and NavMesh Part 1
How to make a DOOM CLONE in Unity || E1M5 Pick-ups and Billboards
Unreal Engine 5 RPG Tutorial Series - #20: AI Behavior Trees Patrolling
How to make a DOOM CLONE in Unity || E1M2 Enemy Hit Detection
5.0 / 5 (0 votes)