当前位置:网站首页>【Unity入门计划】2D Game Kit:初步了解2D游戏组成
【Unity入门计划】2D Game Kit:初步了解2D游戏组成
2022-08-02 02:11:00 【flashinggg】
目录
项目前期准备
游戏素材导入
学习基于Unity官方提供的2D Game Kit项目资源,链接如下
2D Game Kit | 教程 | Unity Asset Store
储存到我的
资源在Unity中加载并导入就行。
RuleTile文件出bug
打开项目后出现了RuleTile相关的bug,可以参考教程P47的改bug的方法。
【unity2021入门教程】47-2D游戏开发教程系列-02-2DGameKit-01-介绍及改bug_哔哩哔哩_bilibili
1 利用Kit Tools添加新场景
利用导入的Creator Kit创建的Kit Tools菜单创建新的场景,命名为MyScene

观察场景分组

2 使用静态平台:TileMap
官方手册:Unity - Manual: Tilemap (unity3d.com)
TileMap给用户提供了一个快捷制作游戏平台的方式,通过简单的移动就能搭建一个能承载游戏玩家的平台,本身就带有了刚体等组件。
作为一个Unity学习的新手,越快上手做出自己的关卡获得的满足感就越多!在跟着B站UP教程学习时涉及到了这个工具,觉得挺有意思的,先简单的使用一下,之后会再学习。
2.1 打开Tile Palette

2.2 添加Tile
操作起来挺方便的
- 添加:选择想要的tile网格,在Scene中左键点击添加即可
- 移动:右键可以移动场景
- 删除:按住Shift可以快速擦除已添加的tile
还会自动补全tile之间的衔接部分!

3 使用动态平台:MovingPlatform
游戏中,除了一些静态的、固定的仅提供承载、移动作用的平台,还需要一些移动的平台,Kit Tool创建的场景中也包含了这样的动态平台。

Assets -> Prefabs -> Interactables -> MovingPlatform/MovingPlatformlong,将预制件拖入场景中创建移动平台,包含一个主要用来控制平台的脚本Moving Platform Script,以及其他组件。

3.1 移动方式 Platform Type
这是规定平台移动的方式,有下列三种
- Back_Forth:前后移动
- LOOP:循环移动
- ONCE:移动一次
3.2 自定移动轨迹 Add Node
添加的这些Nodes和Preview position一起组成移动轨迹,可以是单一前后移动的平台,也可以是按照一个四边形循环移动的平台。

4 创造更复杂的交互效果:压力板机关开门
这里用到了PressurePad这样一个压力板预制件,实现踩上去之后开门的游戏对象之间的互动效果。
Assets -> Prefabs -> Interactables -> PressurePad,双击查看该预制件,可以看到外观是一个平台。

由几个组件组成,还有声音组件,其中主要是PressurePad脚本组件来控制。

4.1 加入机关对象1:压力板
拖入一个到场景中,观察这个PressurePad,他有一个Box碰撞体属性,意味着这个box的范围内才能实现他的踩踏交互,可以调节这个范围以避免位置太靠近草坪而触发不了机关的情况。

4.2 加入机关对象2:门
Asserts -> Prefabs -> Interactables -> Door,拖入场景中加入机关门。

还需要关联上门和踩踏板机关,在PressurePad的Pressure Pad脚本组件中把On Pressed()和加入的门以及门的开门动画关联上。,就能实现踩上踩踏板后门开的操作。

5 加入敌人
游戏中除了玩家操控的游戏对象,还需要有“敌人”,来丰富游戏,2D Game Kit提供了Enemies资源供我们学习。

每个敌人挂了一些组件,其中主要的敌人动作通过脚本Enemy Behaviour控制。

脚本还将敌人的可视化范围和攻击范围可视化出来了。

6 实现间接攻击:推箱子
项目中还提供了PushableBox从高处推下砸死敌人的操作。

加入一个PushableBox到场景中,它同样又很多组件构成。

这里着重看一下三个Box Collider 2D碰撞体组件:

挂的这三个碰撞体分别实现了
- 从右推箱子
- 从左侧推箱子
- 无法穿过箱子
要想让箱子变成武器,还要挂一个伤害者脚本,将Hittable Layer改成enemy


7 实现人物传送
场景传送提供了一些可操作的对象,实现同一场景、两个场景间的跳转。

例如项目提供了一个TransitionStar,通过改变他的组件来实现两个Transition之间的转换。

以上是跟着教程对2D Game Kit项目的学习,但这已经是一个完整的项目了,只是进行了预制件的学习,下面会跟着教程继续学习2D游戏制作。
边栏推荐
- AOF rewrite
- MySQL8 下载、启动、配置、验证
- typescript31-any类型
- Yunhe Enmo: Let the value of the commercial database era continue to prosper in the openGauss ecosystem
- nacos启动报错,已配置数据库,单机启动
- 数据链路层的数据传输
- Huawei's 5-year female test engineer resigns: what a painful realization...
- 手写一个博客平台~第三天
- Centos7 install postgresql and enable remote access
- The underlying data structure of Redis
猜你喜欢

openGauss切换后state状态显示不对

typescript30 - any type

The Paddle Open Source Community Quarterly Report is here, everything you want to know is here

【LeetCode Daily Question】——704. Binary Search

Redis Subscription and Redis Stream

Redis 底层的数据结构

"NetEase Internship" Weekly Diary (1)

typescript33-typescript高级概述

Win Go development kit installation configuration, GoLand configuration

Redis 订阅与 Redis Stream
随机推荐
to-be-read list
typescript38-class的构造函数实例方法继承(implement)
个人博客系统项目测试
MySQL优化策略
LeetCode brushing diary: 53, the largest sub-array and
2023年起,这些地区软考成绩低于45分也能拿证
Day116.尚医通:预约挂号详情 ※
Rasa 3.x 学习系列- Rasa - Issues 4873 dispatcher.utter_message 学习笔记
云和恩墨:让商业数据库时代的价值在openGauss生态上持续繁荣
YGG Guild Development Plan Season 1 Summary
Huawei's 5-year female test engineer resigns: what a painful realization...
Constructor instance method inheritance of typescript37-class (extends)
密码学的基础:X.690和对应的BER CER DER编码
LeetCode刷题日记:153、寻找旋转排序数组中的最小值
Redis Persistence - RDB and AOF
Power button 1374. Generate each character string is an odd number
Software testing Interface automation testing Pytest framework encapsulates requests library Encapsulates unified request and multiple base path processing Interface association encapsulation Test cas
Handwriting a blogging platform ~ the first day
Effects of Scraping and Aggregation
Day116. Shangyitong: Details of appointment registration ※