当前位置:网站首页>【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游戏制作。
边栏推荐
- 项目后台技术Express
- typescript33-typescript高级概述
- leetcode / anagram in string - some permutation of s1 string is a substring of s2
- Rasa 3.x 学习系列- Rasa - Issues 4873 dispatcher.utter_message 学习笔记
- LeetCode Brushing Diary: 74. Searching 2D Matrix
- Centos7 install postgresql and enable remote access
- PHP 使用 PHPRedis 与 Predis
- [ORB_SLAM2] void Frame::ComputeImageBounds(const cv::Mat & imLeft)
- Golang分布式应用之定时任务
- Shell Beginners Final Chapter
猜你喜欢
Use baidu EasyDL implement factory workers smoking behavior recognition
成都openGauss用户组招募啦!
AWR分析报告问题求助:SQL如何可以从哪几个方面优化?
Record the pits where an error occurs when an array is converted to a collection, and try to use an array of packaging types for conversion
[LeetCode Daily Question] - 103. Zigzag Level Order Traversal of Binary Tree
【LeetCode每日一题】——103.二叉树的锯齿形层序遍历
typescript29-枚举类型的特点和原理
垃圾回收器CMS和G1
Speed up your programs with bitwise operations
拼多多借力消博会推动国内农产品品牌升级 看齐国际精品农货
随机推荐
Software testing Interface automation testing Pytest framework encapsulates requests library Encapsulates unified request and multiple base path processing Interface association encapsulation Test cas
[ORB_SLAM2] void Frame::ComputeImageBounds(const cv::Mat & imLeft)
PHP uses PHPRedis and Predis
力扣、752-打开转盘锁
swift项目,sqlcipher3 -> 4,无法打开旧版数据库有办法解决吗
『网易实习』周记(二)
2022-07-30 mysql8执行慢SQL-Q17分析
YGG Guild Development Plan Season 1 Summary
2022-08-01 反思
typescript31-any类型
volatile原理解析
typescript30-any类型
数据链路层的数据传输
Record the pits where an error occurs when an array is converted to a collection, and try to use an array of packaging types for conversion
【LeetCode每日一题】——654.最大二叉树
【 wheeled odometer 】
待读书单列表
Check if IP or port is blocked
2022-08-01 mysql/stoonedb slow SQL-Q18 analysis
Speed up your programs with bitwise operations