• 【Unity入门计划】CreatorKitFPS:第一人称射击3D小游戏


    目录

    Unity学习教程

    1 添加并载入项目资源

    添加项目资源

    载入到Unity

    2 载入Scene

    3 从预制体添加射击Targets

    4 管理游戏对象

    4.1创建分组关系

    4.2 区分相对坐标&世界坐标

    5 自己做一个预制件

    5.1 添加刚体和碰撞体

    5.1 添加Target脚本

    5.3 保存为新的预制体

    6 创建新的场景

    7 创建门和钥匙

    8 修改武器

    9 添加游戏结束条件

    10 发布游戏

    总结


    Unity学习教程

    我是参考B站的这个UP的视频学的,讲得非常好!小白友好!

    【unity2022入门】整合Unity官方教程设计最佳学习路线,Unity精讲入门系列,持续更新中...._哔哩哔哩_bilibili

    1 添加并载入项目资源

    添加项目资源

    这次案例用到了Unity官方资源商店里的FPS游戏的项目资源:Creator Kit:FPS。

    官方资源地址:Creator Kit: FPS | 教程 | Unity Asset Store

    选择添加到我的资源即可

    载入到Unity

    在Unity Hub中新建一个3D项目,打开后按照以下路径

    顶部菜单Window -> Package Manager -> My assets -> Download后Import就完成了

     

    2 载入Scene

    这里我们不像之前一样直接创建一个空白场景,要利用导入项目所给的资源创建,顶部菜单栏FPSKIT ->  Create new Scene,选择一个合适的地方储存(推荐放在Scene目录下)就创建好了当前所需的场景。

    可以发现,这个场景已经打包好了一系列需要用到的东西,提供了很便利的资源。 

    顺便一提,这个小游戏的初衷还是为了进一步了解游戏制作的流程,代码部分尚未涉及,需要带着跟着教程走,不求甚解的目的去学习。

    3 从预制体添加射击Targets

    这里的对象提供了“自己人”——红细胞和“敌人”——细菌怪物,分别从Prefabs的Targets中拖入两类Targets,数量和位置自定。

    4 管理游戏对象

    4.1创建分组关系

    同一个关卡(场景)中会有很多的射击瞄准目标,需要对这么多个目标做一个分组。在hierarchy视图中并没有文件夹形式给我们管理这么多游戏对象,我们可以创建一个空的游戏对象作为父对象,把同一个场景下的Targets都作为同一个父对象的子对象,如图

    4.2 区分相对坐标&世界坐标

    • 当做了上述父子关系的分组关系后,发现子对象的Transform组件 -> Position坐标已经变得跟之前不一样了,这是因为这些子对象的坐标系已经由之前场景下的世界空间坐标转换成了相对空间坐标
    • 同时,Targets这个父对象的Position,将会是所有子对象组成的一个box的整体的中心
    • 那么如果我们想让这些子对象的位置与之前的世界坐标同步该怎么办?把Target的坐标改成(0,0,0),再调整子对象的位置,就行了。

    5 自己做一个预制件

    Assets -> Creator Kit-FPS -> Art -> Models -> Characters,找到预制件GermSpike,打开这个预制件发现由三个游戏对象组成

    先不深究它原始包含的是干什么的。

    将它添加到场景中尝试运行发现它无法射中,判断缺少刚体和碰撞体组件,因此需要进一步完善。

    5.1 添加刚体和碰撞体

    要想实现碰撞,需要添加刚体和碰撞体组件,刚体 -> Rigidbody,碰撞体 -> Sphere Collider,同时给碰撞体一个贴合的形状

    5.1 添加Target脚本

    还需要挂一个其他Targets都有的脚本,用来赋予生命值、分数、声音组件等。

    5.3 保存为新的预制体

    将加了上述组件的对象拖入其余两种targets所在的目录下,就保存成了新的预制体,需要用的时候直接拖入到场景中即可。

    6 创建新的场景

    这里用到了场景中的LevelLayout脚本组件,这里也不深究到底是怎么写的,先用就好。

    打开LevelLayout -> 点击Editing Layout,Add或者Remove用以添加新的场景。

    7 创建门和钥匙

    为了丰富游戏,项目中还可以给每个关卡添加门和打开门的钥匙,这些资源在Prefabs里就可以找到,添加门和钥匙并命名、关联就好。

    8 修改武器

    这个武器部分其实就是选择并添加,所以不赘述,看教程就行。

    9 添加游戏结束条件

    这一个环节我认为主要需要学习的是——碰撞体的运用。知道碰撞体也可以实现触发接触效果执行游戏结束脚本的目的,关键是把Is Trigger的复选框打开。

    给他一个box 碰撞体并挂一个游戏结束的脚本即可。

    至此,教程里游戏制作环节全部结束了。

    10 发布游戏

    点击File -> Build Settings,选择想要发布的平台并Build就行。

    保存结束之后:


    总结

    用了一天时间学习了制作一个3D的小游戏的流程,学习了:坐标轴的使用、熟悉右键+WASDQE键实现第一视角移动、设置游戏对象、挂脚本、给门和钥匙、以及设置结束条件等。

    浅浅的学习了一下,关于更深层的编程等之后会继续学习。

  • 相关阅读:
    返回页面和重定向的区别
    C/C++教程 从入门到精通《第十二章》——MFC的基本使用
    Maven 标准目录结构
    系统权限管理功能设计研究
    Vue 3 + TypeScript + Vite + Element-Plus + Router + Axios + Pinia项目搭建(内含完整架构)
    自然语言处理常用方法和评价指标
    【MacOS】常用快捷键
    c语言指针加减法
    Web基础 ( 六 ) AJAX
    redis List常用命令整理
  • 原文地址:https://blog.csdn.net/qq_41835314/article/details/125965097