目录

跟学的Unity教程

我的Unity版本

1 导入playground项目资源

2 创建新场景

3 创建玩家飞船

3.1 调整大小位置

3.2 调整Game视图的背景

3.3 Inspector -> 重命名&更改Tag

关于Unity的标签(Tag)

4 飞船移动

5 添加障碍物和碰撞

5.1 添加障碍物

5.2 添加碰撞->障碍物

添加ModifyHealth脚本组件

添加2D刚体组件

5.3 添加碰撞 -> 飞船

6 添加减血效果

6.1 添加用户交互界面

6.2 实现血量减少操作

7 添加背景图

7.1 调整图层顺序

8 添加预制件

9 添加星星以获得分数

9.1 加入星星

9.2 加入获取分数组件

10 分组便于管理


跟学的Unity教程

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

我的Unity版本

2021.3.6f1c1

1 导入playground项目资源

进入assetstoreUnity Asset Store - The Best Assets for Game Making

搜索Unity playground保存,再从Unity导入Assert即可。

palyground项目是官方给新手推荐的入门视频,预设了一个封装过的开发环境,让我们很好的上手,来熟悉游戏概念和制作流程,比较好操作!

2 创建新场景

Assets -> Scene 右键-> Create -> Scene,新建一个场景。

点一下名称就可以重命名了,命名为PlaneAsteroid

双击这个Scene对象, 右侧的Hierarchy窗口就会显示出当前的场景对象。

引擎会默认同时创建:玩家摄像头Main Camera和方向光Directional Light两个对象。

3 创建玩家飞船

在这个“宇宙飞船”的小游戏中,玩家操作的是飞船,因此这个游戏的玩家对象就是飞船了!

我们就用已经导入的playground项目里的资源就行。

Assets -> Images -> Spaceships,选择喜欢的飞船,添加到场景中,添加到场景有两种方式:

  • 直接拖到Scene视图中,这个方法可以直接实现对象在Scene中的定位
  • 拖到Hierarchy窗口中,这个方法可以实现在加入的同时创建父子关系

3.1 调整大小位置

初始的飞船太大了,在Game视图中点击运行的话,会是这样

于是就要给它缩小一点, 退出运行状态  -> 选中SpaceshipRed对象 -> R键,实现缩放。

同时,如果想要精确的缩放,右侧Inspector窗口 -> Transform层级下的Scale,输入数值即可。

还可以打开Scale的锁定按钮,实现XYZ三向等比缩放,我这里选择的是缩放到0.2.

可以再在Game视图运行查看,大小就舒服一点了。

3.2 调整Game视图的背景

教程里UP游戏视图的背景色跟我不太一样,我也想要调成纯色的,找了一下发现是在玩家摄像机Main Camera的Inspector中更改。

Main Camera -> Inspector -> Camera -> Clear Flags&Background,可以看到初始是用的天空盒,这里改成Solid Color并把颜色设置成黑色。

3.3 Inspector -> 重命名&更改Tag

根据教程,在Inspector窗口更改飞船名字 -> ship,在Hierarchy窗口中名字也会自动同步了。

关于Unity的标签(Tag)

unity官方:标签 - Unity 手册

  • 在Unity里,Tag是分配给一个或多个游戏对象的参考词,起到标识、区分的作用;
  • 同一类的模型,可以设置成统一的标签;
  • 查找物体就可以按标签进行查找了;

其余的比如代码怎么写的,以后再说,这里先给我们的飞船物体给个Player的Tag。

4 飞船移动

直接用playground项目里写好的Move脚本就可以,点开可以在右侧的Inspector查看代码。

那么怎么把脚本赋给我们的飞船呢?有两种方式:

  • 外行的一种方式——把Move脚本拖拽到ship的Inspector窗口里;
  • 比较建议的方式——从ship的Inspcetor窗口的Add Component添加

添加之后,可以看到属性里多了一个 Rigidbody 2D 和一个 Move With Arrows,对于2D刚体组件Rigidbody 2D我进行了初步的学习总结:Unity学习-2D刚体Rigidbody 2D

另一个Move With Arrows是编程创建的一个通过键盘控制游戏对象的一个组件。

5 添加障碍物和碰撞

5.1 添加障碍物

Assets -> Images -> Asteroids,选择小行星加入Scene中,并调整大小。​​​​​​

5.2 添加碰撞->障碍物

添加ModifyHealth脚本组件

playground项目中已经给我们打包好了一个更改血量的脚本组件。

Assets -> Scripts -> Attributes -> ModifyHealthAttribute

通过Add Component给刚刚的障碍物添加这个脚本组件,加入时我们需要选择:

这个组件需要添加一个2D碰撞体(Collider 2D)来实现碰撞,这里需要选择碰撞物的类型,因为我们的障碍物——小行星是不规则的物体,这里可以选择polygon

关于2D碰撞体,可以看我另一篇介绍的博客:Unity学习-2D碰撞体Collider 2D_flashinggg的博客

可以看到,这个封装好的组件包含了:

  • Modify Health组件——实现飞机碰到它之后掉血的操作

  • Polygon Collider 2D 2D碰撞体——要想实现碰撞检测,飞机和陨石都应该是个碰撞体,因此需要给陨石也加上一个碰撞体组件,注意,这里不能是触发器,因此需要去掉Is Trigger的复选框;

添加2D刚体组件

我们还想实现陨石被碰撞后有点小移动的效果,因此还要给陨石一个Rigidbody 2D的2D刚体组件,并适当的调整刚体的参数值,吗,模拟真实效果。

5.3 添加碰撞 -> 飞船

上面也提到了,想要实现碰撞必须二者都是碰撞体,因此还需要给飞船也添加一个Polygon Coliider 2D组件。

6 添加减血效果

6.1 添加用户交互界面

playground项目也封装好了这样一个用户交互界面的组件,搜索interface找到UserInterface组件拖入右侧的Hierarchy窗口即可。

 

6.2 实现血量减少操作

血量控制是以下两个部分共同完成的

  • 障碍物拥有的Modify Health——碰撞后改变血量

  • 飞船自身血量,需要添加一个Health System组件以设定初始生命值

以上都完成后,移动飞船当碰撞到障碍物陨石后,左上角就会减少生命值。

7 添加背景图

依旧是用项目提供的图,images -> Backgrounds,把Space拖入Hierarchy就行。

但是需要修改图的尺寸以及背景图、飞机、障碍物的图层顺序,避免出现遮挡。

7.1 调整图层顺序

图层顺序在每个对象的Sprite Renderer中修改,我的unity2021.3版本中可以直接修改layer的顺序来调整:

  • BG_Space -> 0
  • ship&Asteroid2 -> 1

就可以避免背景遮挡我们的飞船和障碍物了。

7.2 调整背景尺寸

这里尺寸设置为

最终效果:

8 添加预制件

由于游戏不只有一个障碍物,还会添加进多个障碍物,但是障碍物的一系列属性都应该是一样的,这时候就需要用到unity里的预制件,就是一个可重复使用的资源模板

关于预制件的创建和使用:Unity学习-预制件 Prefab_flashinggg的博客

添加了几个障碍物后,调整了一下大小和样式,结果如图:

9 添加星星以获得分数

这是游戏的最后一部分,需要加入可以”吃掉“且”吃掉“后获得分数的功能。

9.1 加入星星

Project窗口搜索star,并拖入Hierarchy窗口

还需要修改Star的图层顺序,Order in Layer改成1即可。

9.2 加入获取分数组件

仍旧是Star的Add Component -> 搜索Collectable

加入后可以发现,同步需加入一个碰撞体组件,选择polygon就行。

注意,这里的Polygon Collider 2D的Is Trigger需要勾选上,这里就能达到“碰到星星并吃掉”的效果。

Collectable脚本中上述内容就是实现:飞机碰到星星后 -> score++ -> 星星消失,的效果,具体编写之后会进行C#的学习。

10 分组便于管理

操作部分就结束了!挺简单的,最后可以把同类别的对象分组,便于管理。


结束了第一个Unity的练习,继续努力!

【Unity入门计划】playground项目:2D飞船移动小游戏相关推荐

  1. 【Unity入门计划】基本概念(8)-瓦片地图 TileMap 01

    目录 1 TileMap概念 主要思想 优点 创建的层级 2 Unity中的TileMap 2.1 自动父级Grid 网格 2.2 Sprite精灵 2.3 Tile 瓦片 2.4 Tile Pale ...

  2. 【Unity入门计划】制作RubyAdventure03-使用碰撞体触发器实现世界交互

    目录 8 添加生命系统 演示效果 9 使用触发器实现吃血包 9.1 添加一个可以被吃掉的血包 10 使用触发器添加伤害区域 10.1 设置伤害区域 10.2 设置无敌时间 关于无敌时间的讨论 10.3 ...

  3. 从零点五开始用Unity做半个2D战棋小游戏(完)

    好久不见. 这是第29篇与游戏开发有关的文章. | 写在最前 这次想要做一个简单且传统的战棋小游戏,大概的玩法是:在2D世界里创建一张由六边形地块组成的战斗地图,敌我双方在地图上轮流行动,并向对方发动 ...

  4. Unity 4 3 制作一个2D横版射击游戏 2

    分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! 在上一篇 ...

  5. Unity制作2D战棋小游戏

    写在最前 这次想要做一个简单且传统的战棋小游戏,大概的玩法是:在2D世界里创建一张由六边形地块组成的战斗地图,敌我双方在地图上轮流行动,并向对方发动攻击,先消灭掉所有敌人的一方将获得胜利. 今天我们来 ...

  6. 用Unity做半个2D战棋小游戏

    写在最前 这次想要做一个简单且传统的战棋小游戏,大概的玩法是:在2D世界里创建一张由六边形地块组成的战斗地图,敌我双方在地图上轮流行动,并向对方发动攻击,先消灭掉所有敌人的一方将获得胜利. 今天我们来 ...

  7. Unity 游戏实例开发集合 之 Car Racing 2D (2D赛车) 休闲小游戏快速实现

    Unity 游戏实例开发集合 之 Car Racing 2D (2D赛车) 休闲小游戏快速实现 目录 Unity 游戏实例开发集合 之 Car Racing 2D (2D赛车) 休闲小游戏快速实现 一 ...

  8. java基础入门-16-【阶段项目(综合练习doudizhu游戏)】

    Java基础入门-16-[阶段项目(综合练习&doudizhu游戏)] 25.阶段项目(综合练习&doudizhu游戏) 斗地主小游戏 斗地主游戏1(控制台版) 步骤一:准备牌 步骤二 ...

  9. Unity 4.3 制作一个2D横版射击游戏(2)

    在上一篇<Unity 4.3 制作一个2D横版射击游戏>时,已经完成一个基本的射击游戏了.在这一篇将继续完善. 1.视差卷轴效果 为了达到这种视差卷轴的效果,可以让背景层以不同的速度进行移 ...

最新文章

  1. 学习官方示例 - System.TClass
  2. android x86怎么引导,Android、Ubuntu、win三系统引导求教
  3. 存储过程中将sql语句结果赋值给变量
  4. 杯子 + Kronican
  5. 短网址生成+域名检测+短网址还原等四合一前端源码
  6. Ubuntu下安装Rabbitmq和golang环境
  7. c# 如何读取和写入ini(配置文件)
  8. 删除linux分区后grub,删除Ubuntu分区后GRUB救援问题!
  9. 微软将于下周展示平板电脑操作系统
  10. 单片机(ISIS 7 Professional):交通灯代码项目
  11. 《算法的乐趣》终于出版了
  12. 概率论与数理统计(陈希孺)笔记2.1
  13. 2022软工K班个人编程任务
  14. boost升压电路遇到过的问题
  15. Springboot实现拦截器功能
  16. iPad /iPhone无法开机、白苹果怎么办?教你快速解决iPad /iPhone开不了机的难题
  17. 绘真妙笔千山怎么在电脑上玩 绘真妙笔千山安卓模拟器教程
  18. 2019金华正睿集训总结
  19. java全栈系列之JavaSE-面向对象(接口定义与实现)042
  20. Java 实现XOR(异或)校验

热门文章

  1. 03【应届生精准求职】如何准备面试?校招流程,零经验如何面对?看穿面试官背后的套路?面试类型?如何谈薪资?接受或拒绝offer?
  2. C# 实现简易QQ界面
  3. 全球及中国POCT行业发展现状分析,市场主要集中在经济发达地区「图」
  4. php notice undefined variable,PHP提示Notice: Undefined variable的解决办法
  5. vue2乾坤框架搭建
  6. Unity3d Animator 动画倒放
  7. C#.Net 设计模式学习笔记之结构型 (三)
  8. 如何利用 ArcGIS Pro 和 Landsat 8 图像计算叶绿素指数和全球环境监测指数
  9. windows 下使用Qt抓取桌面和鼠标
  10. FPGA学习第2天--蜂鸣器实现歌曲《两只老虎》