Unity 官方教程2

fps模板小游戏 3D

官方文档

Creator Kit: FPS - Unity Learn

对象分组和相对世界坐标

建立空的游戏对象对对象进行分组

相对坐标 : 子对象相对于父对象中心点的坐标

世界原点: 相对于世界中心的坐标

子对象使用世界坐标,将父对象的坐标设置为(0,0,0)

创建对象

  1. 创建场景: 在顶部菜单栏中,选择 FPSKIT > Create new Scene。

    注意: FPSKIT 菜单并非是 unity 中的默认菜单,而是通过代码,新增如 Unity 编辑器的自定义功能。 Assets/Creator Kit - FPS/Scripts/Editor unity 支持定制功能,非常灵活,开发者可以根据自己的需求,打造属于自己的 unity ,从而简化开发过程

  2. 添加游戏目标:

    选中 Assets/Creator Kit - FPS/Prefabs/Targets/GermSlimeTarget 预制件,拖入 Hierarchy 中,并在 scene 中,调整其位置

  3. 更改目标对象属性: Inspector 窗口 --> Target 组件 --> 更改目标的 Health(小怪的生命) 和 Point Value (杀死后得分)

  4. 添加其他目标对象: Assets/Creator Kit - FPS/Art/Models/Characters,选中 GermSpike ,拖入 scene

  5. 为新对象添加刚体组件: 单击 Add Component 按钮,然后开始在搜索栏中键入“Rigidbody”并添加;禁用 Use Gravity 复选框,启用 Is Kinematic 复选框。 禁用 Use Gravity 将使病菌漂浮,而启用 Is Kinematic 会阻止子弹(或其他任何对象)使病菌四处移动。

    注意:启用 Is Kinematic,则刚体对象将不会被物理引擎驱动,只能通过变换 (Transform) 对其进行操作。

  6. 为新对象添加碰撞体: Add Component 并搜索 Sphere Collider。添加该组件。

    Sphere Collider(球形碰撞体)将确保可以击中病菌,有时会将这个碰撞体称为“命中范围”。在 Scene 视图中,你会发现这个碰撞体就是包围病菌的绿色球体。

    调整碰撞体的大小,使其紧紧地包围住整个对象素材。

  7. 将新对象设置为目标: 单击 Add Component,然后搜索并添加 Target 组件。

    组件会添加一个自定义脚本来使病菌成为目标。添加脚本后,请更改目标的 Health 和 Point Value 值,然后再次测试游戏。完成后,请务必保存更改。

    设计关卡

    1. 关闭音频辅助图标: 在 Hierarchy 窗口中,选择 LevelLayout 游戏对象。 在 Scene 视图的右上角,单击 Gizmos 按钮旁的向下箭头。 在菜单中,向下滚动列表并禁用 Built-in Components 部分中的以下两个复选框:AudioReverbZone、AudioSource

    2. 添加新房间和走廊: 在 Hierarchy 中,确认 LevelLayout 游戏对象仍然为选中状态; 在 Inspector 窗口中,找到 Level Layout 组件。单击 Editing Layout。这样会默认启用添加模式。然后,单击 CorridorGroup 以添加走廊,或者单击 RoomGroup 以添加房间。 你可以按键盘上的 R 键来旋转房间并更改这个房间尝试贴靠到的门。对位置感到满意后,请单击鼠标按钮来放置房间。

      1. 如果操作失误或者要删除房间,请单击组件中的 Remove 按钮。完成此操作后,将光标移到 Scene 视图中的房间和走廊上方就会突出显示这些房间和走廊。单击一个房间即可将这个房间删除。

        完成关卡设计的编辑工作后,再次单击 Inspector 窗口中的 Editing Layout 按钮以禁用关卡编辑器工具。

      2. 添加门: 选择 Assets/Creator Kit - FPS/Prefabs/Door and Key/FatBlob,拖拽到 scene 中,选择合适的位置,堵住路口,充当门

      3. 添加钥匙并匹配门: 在 Project 窗口中,选择 Key 预制件,拖拽到 scene 中,选择合适的位置,在 Inspector 中,找到 Key 组件。在 Key Type 字段中,为钥匙提供一个唯一的名称。

        在 Hierarchy 中,选择 FatBlob 游戏对象。在 Inspector 中,找到相应的 Lock 组件。使用下拉菜单将 Key Type 值设置为所选的钥匙名称。现在,玩家只要收集到钥匙,就可以开启对应的门

        修改武器

        1. 根据原武器新建自己的新武器: 选择 Assets/Creator Kit - FPS/Prefabs/Weapon/GermOBlaster 预制件,按 Ctrl + D (Windows) 或 Cmd + D (macOS) 来复制一个副本,并将武器重命名。

        2. 在新武器的预制件中,更改武器属性: 双击新武器,进入预制件编辑状态,在 Inspector 中,找到 Weapon 组件。 将 Trigger Type 更改为 Manual。现在,仅在按下扳机时,武器才会发射一次,而不是尽可能快地发射。 Clip Size 的值从 30 更改为 8,以减少单次重新装填弹匣的弹药量。将 Damage 的值从 0.5 更改为 5。 保存。

        3. 将新武器添加给 Character: 在 Hierarchy 中,选择 Character 游戏对象

          在 Inspector 窗口中,找到 Controller 组件。

          选择 Starting Weapons 条目名称左侧的小箭头以展开该条目。将 Size 从 3 更改为 4。这将在关卡开始时为玩家提供四种武器。

          将新武器预制件从 Project 窗口拖到 Inspector 中显示的 Element 3 字段上。

          保存后,运行游戏测试,用鼠标滚轮或 1、2 、3、4 键来切换武器。

          关卡终点

          1. 创建 LevelEnd 游戏对象: 在 Hierarchy 窗口中右键单击一个空的区域,然后选择 Create Empty,在 Inspector 窗口中,将游戏对象重命名为“LevelEnd”。

          2. 添加盒装碰撞体: 在 Inspector 中,单击 Add Component 按钮。搜索“Box Collider”,然后将此组件添加到 LevelEnd。启用 Is Trigger 复选框。

            单击 Add Component 按钮。搜索“End Checkpoint”,然后将此组件添加到 LevelEnd。

          3. 将碰撞体放在合适位置: 使用变换组件工具将该对象放置在所需的关卡结束位置。房间或走廊的尽头就很适合作为关卡终点。

构建游戏发布

  1. 确保要用于游戏的场景已打开。在顶部菜单中,选择 File > Build Settings。

  2. 在对话窗口中,选择空的 Scenes In Build 列表底部的 Add Open Scenes 按钮。此时会将当前打开的场景添加到构建中。

  3. 单击 Build 按钮。选择要保存构建版本的文件夹并为其命名。Unity 将创建构建版本,然后打开包含可执行文件的文件夹。通过启动此文件即可玩这个游戏。

拓展手册



探索创作者套件的所有可能性:

参考详细手册以了解更多信息以及编辑器的背景资料。 这些参考内容包括:

  • 此创作者套件中所有武器设置的相关概述。

  • 有关导入你自己的 3D 模型并使用它来创建新型武器的指导。

  • 有关高级游戏功能(例如,创建在销毁目标时触发的门锁系统)的指导。

3.创作者套件:初学者代码 荒野西部

官方文档:Creator Kit: Beginner Code - Unity Learn

资源:Creator Kit: Beginner Code | Tutorials | Unity Asset Store

游戏类型: 3D ARPG (动作角色扮演游戏) 包含:

  • 角色系统

  • 怪物系统

  • 物品系统

  • AI 系统

使用vs2019作为开发者工具

edit - preference - External Tools -> visual studio XXXX 2019.

打开项目

Hierarchy -> LevelDesign -> PotionSpawner -> Inspector -> Spawner Sample -> SpawnerSample -> Project -> 双击在 vs 中打开

或者,直接在 Project -> Assets/Creator Kit - Beginner Code/Scripts/Tutorial/ 下,双击在 vs 中打开

官方类库

注意: 一定要使用英文官方网站的 api 文档:Unity - Scripting API: MonoBehaviour

变量

函数

Unity 官方教程 - 函数简介

C# 官方教程 - 方法

调试

输出错误日志

debug.log

  • 用 Console 查看错误提示和警告

  • 用 vs 2019 进行 debug

可视化脚本 #

visual script

流程控制

C# 官方文档 - 选择语句 C# 官方文档 - 迭代语句 C# 教程 - 通过分支和循环语句了解条件逻辑(强烈建议学习)

组件类

using UnityEngine;
using CreatorKitCode;

public class SpawnerSample : MonoBehaviour
{
    public GameObject ObjectToSpawn;
    public int distance =2;
    void Start()
    {
        SpawnObject(15);
        SpawnObject(55);
        SpawnObject(95);
    }
    void SpawnObject(int angle)
    {

        Vector3 direction = Quaternion.Euler(0, angle, 0) * Vector3.right;
        Vector3 spawnPosition = transform.position + direction * distance;
        Instantiate(ObjectToSpawn, spawnPosition, Quaternion.identity);
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值