学习unity的第一个游戏-Playground

主要参考教程:【unity2021入门】13-官方入门教程系列-02-PlayGround-01​​​​​​

(老师很不错,欢迎一键三联)

Unity Playground 提供了一系列易于使用和整合的单任务组件,因此不要求具有编码技能。通过将这些组件整合在一起,便可以创作出多种游戏风格的 2D 物理游戏。还可以使用 Playground 来了解游戏设计或关卡设计。

注意:
官方文档中,使用的是 Unity 2017 ,版本比较旧,跟新的 Unity 界面有所区别,建议用新版本的同学,还是按此文档来操作,避免出现问题

制作你的第一个游戏

制作教程中第一个小游戏:飞船躲陨石

1.1 创建玩家

1.打开项目:
打开前面课程中已经准备好的 playground 项目

2.创建新场景:
project 窗口 --> Assets/scenes 文件件,右键 create scene ,创建只带有一个 camera 对象的场景,重命名为 PlaneAsteroid

3.添加玩家飞船:project 窗口 --> Assets/Images/SpaceShips/ 拖拽其中一个飞机到 Hierarchy 中,让飞船对象成为 PlaneAsteroid scene 的子对象;选中飞船,在 inspector 窗口中,将对象命名为 Ship ,并将 Tag 选中为 Player

 4.让飞船动起来:

  • 添加组件,将脚本:使用 Inspector 底部的 Add Component 下拉菜单,然后键入“move”把Move with Arrows 绑定到飞船对象上;
  • 一旦你添加了 Move 脚本,还会自动添加一个 Rigidbody2D 组件。这是因为 Move 需要 Rigidbody2D 才能起作用。
  • 调整 Gizmos 中的脚本图标大小,将其缩小:使用 Scene 视图中的下拉表单辅助图标进行缩小。将 3D Icons 滑动条向左拖动,直到图标大小合适。

 

相关概念:

  • tag(标签): 利用标签,我们可以将对象分为几类,以便脚本仅在碰触到正确的对象时才能执行操作。没有标签,就无法区分对象。可以在项目配置中,增减标签
  • script(脚本): Unity 中的游戏代码
  • sprite(精灵): Unity 中的 2D 游戏对象素材

1.2 调整物理值

 RigidBody2D 组件和移动脚本组件上,暴露出很多物理引擎相关的参数值,通过调整,可以改善游戏体验

  • 在 RigidBody2D 组件上,我们要将 Gravity 修改为 0
  • Orient to direction:船头朝向移动方向
  • Friction :摩擦力,设置为 5 可以消除漂移
  • Speed : 更改速度
  • mass :质量,影响惯性

相关概念:

物理引擎:Unity 中,包含了完整的物理引擎,可以让开发者非常方便地模拟显示中的物理现象,比如:质量、惯性、重力、速度、加速度、碰撞、反弹等等。
物理系统 官方文档

RigidBody(刚体):是实现游戏对象的物理行为的主要组件。如果想让一个游戏对像能被物理引擎所影响,就必须为其添加 RigidBody 组件,分为 2D 和 3D,分别针对不同的游戏类型。刚体可以接受力和扭矩(通过脚本编写代码来实现),向刚体施加力/扭矩实际上会改变对象的变换组件位置和旋转。 
2D 刚体官方文档

1.3 添加障碍物和碰撞

1.添加小行星

2.添加两个组件到小行星:Rigidbody2D 和 PolygonCollider2D,把 PolygonCollider2D中的is Trigger的对勾去掉,否则无法作用在物理引擎上;设置小行星重力为 0,否则小行星会掉下来!调整小行星参数:Friction(摩擦力)、 Angular Friction 为旋转阻力和 Mass(质量,推荐10)

3.添加 PolygonCollider2D 给飞船:必须都有该组件,才能正常碰撞

4.碰撞后掉血:向小行星添加一个名为 ModifyHealthAttribute 的脚本

 

5.向飞船添加另外一个名为 HealthSystemAttribute 的脚本,这样飞船能够检测到这种伤害。

6.通过将小行星拖拽到 project/Assets/Prefabs 中,将其设置为预制件(Prefab);并进行复制(Windows 上的快捷键为 Ctrl+D,Mac 上的快捷键为 Command+D),从而在飞船周围创建一个小的小行星场。

相关概念:

Collider(碰撞体):2D 多边形碰撞体,碰撞体的形状由线段组成的自由形状边缘定义,因此可对其进行高精度调整以适应精灵图形的形状。
官方文档

Prefab (预制件):Unity 的预制件系统允许创建、配置和存储游戏对象及其所有组件、属性值和子游戏对象作为可重用资源。预制件资源充当模板,在此模板的基础之上可以在场景中创建新的预制件实例,就是“可重用资源模板”
预制件 官方文档

1.4 添加用户界面

通过用户界面(user interface)给玩家回馈信息

将 UserInterface 预制件从 /Prefabs 文件夹拖入到场景中。在你查看 Game 视图时,系统会自动显示一个 UI 弹出窗口,其中包含 Score 和 Health 属性。

1.5 添加游戏目标

假设我们希望飞船收集一些星星,但不能撞到小行星。一旦收集到所有星星,便赢得了比赛。但如果发生碰撞的次数太多,游戏便结束!

1.添加星星:直接在搜索栏搜索“star”,将这个星星从 /Images 文件夹拖入到场景中。

2.添加分数脚本:为星星添加 Collectable 脚本,将星星变成一个可收集物品,收集到一个星星便会奖励玩家一个点数。

3.添加碰撞体,让星星能被飞船收集:为星星添加 PolygonCollider2D 组件,并启用 Is Trigger 属性。

1.6 添加获胜条件

完善游戏,添加获胜条件

1.将星星作为预制件,复制 5 个;将这些星星分布到周围,让一些星星很容易获得,但其他一些星星很难获得。通过这样的方式,我们也可以让我们的小游戏难度逐渐增大。

2.选择 UI 游戏对象,然后在 UI 脚本上确保游戏类型为 Score,并且所需得分为 5。

注意:星星个数需要 大于等于 Score 值,否则永远无法胜利

再次按 Play,看看你是否可以在游戏中获胜。如果你获得了全部的 5 个星星,你应该会看到一条消息为“Player 1 wins!”。

恭喜,你已经制作出了你的第一个游戏。真棒!请继续调整,直到你对控制方式、难度和关卡布局感到满意为止。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

行秋

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值