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

2023-11-08

目录

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键实现第一视角移动、设置游戏对象、挂脚本、给门和钥匙、以及设置结束条件等。

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【Unity入门计划】CreatorKitFPS:第一人称射击3D小游戏 的相关文章

  • typescript, javascript, 字符串固定位置插入字符

    js和ts里连个字符串插入方法都没有 难受 这个参考了python中index可以是负数从后向前数的思想 自己写了一个 字符串插入函数 自己确认插入位置 若位置不对会抛出异常 param string src 原字符串 param numb

随机推荐

  • Kotlin 1.3 终于正式发布,带来了稳定的 Coroutines、beta版本的Kotlin/Native

    Kotlin 官网 https kotlinlang org Github 地址 https github com JetBrains kotlin 此次版本更新包括 Coroutines 的正式发布 Kotlin Native Beta
  • js中every用法_JS中every()和some()的用法

    every 与some 方法都是JS中数组的迭代方法 every 是对数组中每一项运行给定函数 如果该函数对每一项返回true 则返回true some 是对数组中每一项运行给定函数 如果该函数对任一项返回true 则返回true func
  • 44. 日志管理之systemd日志,持久化设置,journal,systemd-journald,查看日志(journalctl)

    Systemd 统一管理所有 Unit 的启动日志 可以只用journalctl一个命令 查看所有相关日志 内核日志和应用日志 日志的配置文件是 etc systemd journald conf 文章目录 持久化systemd日志 查看日
  • 时序预测

    时序预测 MATLAB实现时间序列回归之似然检验 目录 时序预测 MATLAB实现时间序列回归之似然检验 基本介绍 程序设计 学习小结 参考资料 基本介绍 使用 CNLM 假设制定的 t 和 F 检验版本可以在创新分布偏离规范的各种情况下提
  • 【mcuclub】压力检测模块-XGZP6847

    一 实物图 型号 XGZP6847 二 原理图 编号 名称 功能 1 NC 空置 2 VDD 电源正 3 GND 电源地 4 VDD 电源正 5 OUT 信号引脚 输出的是模拟量 6 GND 电源地 三 简介 XGZP6847型压力传感器是
  • Spyder预测标签和真实标签以Mat格式输出(待续)

    1 需求 需要将Spyder里面的预测标签和真实标签输出 并保存为Mat格式 以通过Matlab生成混淆矩阵 为什么要用Matlab生成混淆矩阵呢 python不是也是可以的吗 import pandas as pd import torc
  • 【《程序员的自我修养---链接装载于库》读书笔记】可执行文件的装载与进程

    系列文章目录 程序员的自我修养 链接装载于库 读书笔记 初探ELF 程序员的自我修养 链接装载于库 读书笔记 windows PE COFF 程序员的自我修养 链接装载于库 读书笔记 可执行文件的装载与进程 文章目录 系列文章目录 前言 6
  • 为什么TCP建立连接要求发送方和接收方的初始化序列号不一样的呢?

    前几天有位读者问我为什么 TCP 建立连接需要三次握手文章中一个问题 就是他不明白 序列号解决了数据包的缺失和顺序颠倒等问题 但为什么要求发送方和接收方的初始序列号不一样 后来 我跟他交流半个小时 终于把他讲明白了 我觉得应该有不少人会有以
  • postman之在tests断言中使用for循环断言和断言空

    一 tests断言中使用for循环断言 1 在使用postman判断过程中 想要实现这么一个场景的判断 因为banner位置的配置是多变的 可以不配置 可以配置一个 也可以配置多个 在接口检测判断过程中想要通过for循环对banner列表中
  • Ubuntu安装了python3.8和python3.7,安装numpy时出现问题

    环境 Ubuntu20 04 由于目前PySpark只支持python3 7及以下的版本 而Ubuntu20 04自带的python3是python3 8 5 于是我安装了python3 7 9 且没有改动默认的python版本 千万别改
  • 接口测试的维度

    在 Python自动化测试实战 的书籍里面系统的介绍了基于Python语言的接口自动化测试实战和基于Python语言的UI自动化测试实战 特别是接口测试部分 详细的介绍了HTTP的协议原理 序列化与反序列化 主流测试工具 Postman和J
  • 2020CCPC河南省赛 发通知(离散+差分)

    学院一共有 n 位学生 用 1 编号 每天 学院都会派遣辅导员给学生发送若干通知 以保证各项措施 活动消息得到落实 现在 学院要求辅导员发送一条关于光盘行动的通知 对于通知信息 同学们的反应往往各不相同 辅导员预测出第 i 号学生收到通知后
  • vue面试题——v-if 和v-show的区别

    面试前端时 涉及到vue v if和v show几乎是必问的一道题 所以记录一下 首先我们先来看一段代码
  • iwconfig查看网卡 ifconfig查看ip /etc/init.d/ssh restart

    iwconfig查看网卡 ifconfig查看ip etc init d ssh restart 开启ssh服务 1 查看是否有sshd config cat etc ssh sshd config 查看是否有sshd config文件 2
  • python二级练习软件(90%原题)题库、三天速成。

    刷题软件 文末有联系方式 注明来意 我发现大家对考Python计算机二级都比较感兴趣 也有一些疑问 对于考证这个问题我简单说一下我的经验 python二级其实很容易通过 考试题题库是前九年真题加一套新题 你会遇到90 的原题 只要考前三天练
  • linux下搭建SVN遇到authentication failed问题的解决方法

    之前由于要管理项目组的文档 所以就想在linux下搭建一个svn平台 于是我就在网上找资料 并按照步骤搭建了一个SVN 结果老是出现一个authentication failed的错误 经过一个下午的努力 终于让我找出了错误的原因 一个非常
  • 微信小程序实例源码大全下载

    小程序QQ交流群 131894955 小程序开发直播腾讯课堂 https edu csdn net course detail 6743 微信小程序实例源码大全下载 微信小应用示例代码 phodal weapp quick 源码链接 htt
  • 避免Django重复提交表单,ERR_cache_miss错误

    在做项目时 遇到这个问题 首页设置为登录页login html 登录后跳转至工具页tool html 使用django自带的会话及身份验证中间件 自己认为的应该没问题 但总报标题所述错误 折腾了半天 终于解决 这里记录一下 我的urls p
  • 卷积神经网络详解

    卷积神经网络 Convolutional Neural Networks CNN 是应用最多 研究最广的一种神经网络 卷积神经网络 以下简称CNN 主要用于图片分类 自动标注以及产品推荐系统中 以CNN实现图片分类为例 图像经过多个卷积层
  • 【Unity入门计划】CreatorKitFPS:第一人称射击3D小游戏

    目录 Unity学习教程 1 添加并载入项目资源 添加项目资源 载入到Unity 2 载入Scene 3 从预制体添加射击Targets 4 管理游戏对象 4 1创建分组关系 4 2 区分相对坐标 世界坐标 5 自己做一个预制件 5 1 添