当前位置:网站首页>【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游戏制作。
边栏推荐
- 优炫数据库导库导错了能恢复吗?
- Day116. Shangyitong: Details of appointment registration ※
- "NetEase Internship" Weekly Diary (1)
- 个人博客系统项目测试
- A full set of common interview questions for software testing functional testing [open thinking questions] interview summary 4-3
- Win Go开发包安装配置、GoLand配置
- 手写一个博客平台~第三天
- A good book for newcomers to the workplace
- Multi-Party Threshold Private Set Intersection with Sublinear Communication-2021:解读
- swift project, sqlcipher3 -> 4, cannot open legacy database is there a way to fix it
猜你喜欢

6-24 exploit-vnc password cracking

2023年起,这些地区软考成绩低于45分也能拿证

个人博客系统项目测试

Check if IP or port is blocked

typescript33 - high-level overview of typescript

MySQL8 下载、启动、配置、验证

typescript38-class的构造函数实例方法继承(implement)

Fundamentals of Cryptography: X.690 and Corresponding BER CER DER Encodings

Redis 底层的数据结构
软件测试功能测试全套常见面试题【开放性思维题】面试总结4-3
随机推荐
oracle query scan full table and walk index
数据链路层的数据传输
6-24 exploit-vnc password cracking
Day115. Shangyitong: Background user management: user lock and unlock, details, authentication list approval
LeetCode刷题日记:74. 搜索二维矩阵
云和恩墨:让商业数据库时代的价值在openGauss生态上持续繁荣
Redis Persistence - RDB and AOF
The Paddle Open Source Community Quarterly Report is here, everything you want to know is here
messy website
LeetCode brushing diary: 53, the largest sub-array and
typescript34-class的基本使用
Force buckle, 752-open turntable lock
Rasa 3 x learning series - Rasa - 4873 dispatcher Issues. Utter_message study notes
Golang分布式应用之定时任务
typescript37-class的构造函数实例方法继承(extends)
AOF重写
用位运算为你的程序加速
"NetEase Internship" Weekly Diary (2)
typeof in typescript32-ts
力扣、752-打开转盘锁