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)