Unity3d Platformer Pro 2D游戏开发框架使用教程
前言
Platformer Pro框架是Unity3d AssetStore上一个非常强大和受欢迎的2d游戏开发框架,这个教程的大部分翻译于官方文档,一部分是工作总结,还有一部分是视频教程文档化.这个文档教程内容比较多,可能需要很久才能更新完.
刚买完最新正版,这里是下载链接: https://pan.baidu.com/s/1c2GggaG 密码: k9nf
一.教程
1. 开始 Getting Started
1.1总览
总览安排的学习目标能让你对Platformer Pro有一个全面基本的了解.
初步阅读
文档中所有标有(1)的文章是文章所在各个模块的总览,最好每个都看一遍,这样能让你对整个框架的结构有一个清晰的认识.
- 角色[Characters (I)(https://jnamobile.zendesk.com/hc/en-gb/articles/204344570)
- 碰撞器Colliders (I)
- 输入基础Input Basics (I)
- 运动组件工作方式How Movement Works (I)
- 动画桥Animation Bridges (I)
- 平台Platforms (I)
简单视频教程
加入论坛
进阶视频教程
读完所有API文档
- 为了进一步的理解Platformer PRO,下一步是阅读完整的API文档,
项目中练习
- 只有在实际项目中运用才能真正学会使用这个框架.
1.2 快速开始
二.文档
1. 角色组件 Character Components
1.1角色Character (I)
理解这个部分对使用Platformer Pro至关重要
Character组件是组织其他所有组件的基础组件:通过Character组件,其他组件能够结合到一起工作来实现角色的创建。
Character组件包含影响角色行为的关键元素的配置,例如角色将与哪些层交互。
要创建一个新角色,将Character组件添加到一个空的GameObject中。
1.2碰撞器Colliders(1)
理解这个部分对使用Platformer Pro至关重要
Platformer PRO中的角色碰撞由在character上定义的RaycastColliders控制。 角色的头部,侧面和脚部都有一些碰撞器。
通过添加character组件创建角色后,你就可以使用角色上的Collider Editor来修改角色身上的碰撞体:
重置碰撞体Collider
按“ 重置碰撞器 ”按钮,可以把碰撞器的各个选项重置为不同的默认值。 当按下此按钮时,将根据角色的配置显示一系列选项。例如:

- Reset to default position
 将对齐框重置为框形。
- Use basic sprite detection
 将对应关系重置为精灵边界。(带有SpriteRenderer)
- Use smart sprite detection
 读取精灵的Alpha通道,以猜测碰撞机的最佳位置。(带有SpriteRenderer指向一个可读的Sprite)
- Use mesh based detection
 将关键字重置为网格的边界。(带有MeshFilter)
使用可读Sprite重置碰撞器选项作为角色GameObject:
使用不可读Sprite将角色GameObject的小孩重新设置为相关选项(请注意信息消息):
 
 在设置了基本的碰撞器之后,您可以使用“Edit Feet”,“Edit Sides”和“Edit Head”按钮来调整碰撞器的位置。
编辑碰撞器 - 脚部
脚部碰撞器给角色向上的力,使角色站立在平台上。
提示 :这里的碰撞器是通过射线检测实现的,不是Box collider, 如果脚射线检测不到任何物体,角色就会下落.
单击Edit Feet显示的场景视图:

使用鼠标拖动角色脚的边界,能够调整脚部碰撞器的位置。
在Inspector中,您会看到Edit Feet选项:

使用Add Collider按钮添加更多的碰撞器到角色。 碰撞器用小圆圈表示。 使用“ Remove Collider ”按钮删除碰撞器。 因为脚部碰撞器必须均匀间隔,您只能控制脚部碰撞器的边界。
更多的碰撞器将允许你的角色站在非常薄的平台上。 如果您正在处理陡坡,您应该使用更多的碰撞器(4或5)。脚部碰撞器应该尽量少于5个。
Reflect changes on both sides 选项使您的角色在调整碰撞器时左右对称。 如果您有不对称的角色,请参阅Working with Asymmetrical Characters.。
注意:当使用tiles 时,应考虑tiles 的大小,而不仅仅是平台的尺寸。 如果所有平台都是1个单位宽,但是瓷砖只有0.5f单位宽,确保角色的脚部碰撞器宽度小于瓷砖尺寸。
编辑碰撞器 - 侧面
侧面碰撞器在角色两边:用于防止角色穿过墙壁。
使用侧面碰撞器类似于使用脚部碰撞器,但是您可以更好地控制侧面碰撞器的位置:

使用鼠标移动碰撞器, 使用"+"号按钮添加新的碰撞器。 按住SHIFT,然后单击"-"号按钮删除一个碰撞器。
记住 :你需要有足够的侧面碰撞器,使得同一侧任何碰撞器之间的最大距离小于最薄的墙壁或平台。 这确保角色不能“穿过”墙壁。 通常3到4个是足够的。
记住侧面碰撞器的工作原理,他们给角色一个侧向的力。如果侧面碰撞器没有在X轴上对齐,你的角色可能会在靠墙下降时抖动。按下 Align in X 使所有的碰撞器在X轴上对齐。大多数角色都应该使其碰撞器沿x轴对齐。
然而,不对齐的侧面碰撞器可以适用于某些角色,特别是奇怪形状或2.5D角色。 如果要使用非对齐侧面碰撞器,则要使用多个侧面碰撞器来提供平滑的形状:

“Space Evenly ”按钮使得碰撞器在Y轴方向上均匀分布。
双方的反射变化复选框使您的角色对称。 在大多数情况下,您希望您的角色是对称的,但如果您有不对称的角色,请参阅使用不对称字符。
编辑碰撞器 - 头部
头部碰撞器在接触物体时会给角色一个向下的力,用来阻止角色跳过屋顶。
使用头部碰撞器类似于使用侧面碰撞器。 您可以选择在Y轴( 对齐顶部Align Top )和X轴( 均匀分布,Space Evenly )进行对齐 。
像其他碰撞器一样,您必须确保头部碰撞器足够靠近小于最薄的平台,这样角色才不会穿过平台。
注意:当使用tiles 时,应考虑tiles 的大小,而不仅仅是平台的尺寸。 如果所有的平台都是1个单位宽度,但是tiles 只有0.5f单位宽,确保你的头部.碰撞器宽度小于瓷砖尺寸。
碰撞器通用设置
以下准则将有助于确保您的角色按预期方式行事,而不会出现奇怪的弹出或跳动:只有当你确定知道自己在做什么时才能打破这些规则!
- 侧面碰撞器必须位于由头部和脚部碰撞器定义的范围内。
- 一般侧面碰撞器应该“伸出”比头部和脚部的碰撞物稍微远一些。
- 一般来说,头和脚的对撞机边界大致相同:如果一个角色从平台上直接落下,他们应该能够跳起来,而不会碰头。
调试碰撞器
您可以通过按下“Debug Collider”按钮来查看碰撞器的情况。 在编辑模式中,这显示了碰撞器的边界和范围,但是在播放模式下,它显示的更多:


- 白线显示的是碰撞器的范围 ,箭头指示方向。 
- 灰线显示前方:这是射线投射的距离。 是用来检测墙壁或检测地面, 然后施加推开它的力。 
- 蓝色圆圈显示前方区域的碰撞。 他们影响角色触发事件,但不会影响角色的位置。 
- 红色圆圈显示碰撞器范围内的碰撞。 他们会影响角色的位置。 
2. 输入 Input
3. 运动 Movement
4. 动画 Animation
5. 生命和伤害 Heath and Damage
6. 物品和奖励 Items and Power Ups
7. 敌人 Enemies
8. 伤害系统 the Attack System
9. 平台和几何 Platformes and Geometry
10. 触发器和事件响应 Triggers and Event Responders
11. UI和特效 UI and Effects
12. 扩展和使用第三方工具 Extending and Using Third Party Tools
Unity3d Platformer Pro 2D游戏开发框架使用教程的更多相关文章
- IOS 2D游戏开发框架 SpriteKit
		最近发现Xcode自带的2D游戏开发框架SpriteKit可以直接引入到APP中进行混合开发,这就是说可以开发出既带业务应用又带游戏的苹果APP,咋怎么觉得这是一个自己的小发现....呵呵....., ... 
- Unity3D系列教程--使用免费工具在Unity3D中开发2D游戏 第一节
		声明: 本博客文章翻译类别的均为个人翻译,版权全部.出处: http://blog.csdn.net/ml3947,个人博客:http://www.wjfxgame.com. 译者说明:这是一个系 ... 
- 初识phaser框架——开源的HTML5 2D游戏开发框架
		背景: 在网上看到,65行实现flappy bird,感到很好奇.原来是使用开源的2D游戏框架 phaser开发的. 什么是phaser2D游戏开发框架呢? 借鉴与网上的资料: 1. Phase ... 
- unity3D引擎:2D游戏自动瞄准算法实现
		转:http://blog.csdn.net/naitu/article/details/39555373 在很多飞行射击类游戏里,都有敌人向玩家自动瞄准并开火的功能.在这里本人用unity3D引擎新 ... 
- IOS 2D游戏开发框架 SpriteKit-->续(创建敌对精灵)
		这次包括之后讲的spritekit 我都会围绕一个案例来说,这个案例就是一个简单的2d飞机大战游戏,今天这里我讲创建敌对精灵,就是敌对飞机,敌对飞机不停的被刷新到屏幕上.....当然这里涉及到的类其实 ... 
- IOS 2D游戏开发框架 SpriteKit-->续(创建用户角色精灵--原创)
		一.主要实现 今天spritekit实现创建玩家角色精灵(SKSpriteNode *), 增加角色精灵的手势操作,这里增加的手势计算方法与objective-c中是不一样的,因为objectiv ... 
- IOS 2D游戏开发框架 SpriteKit-->续(完善角色功能)
		一.说明 今天给角色精灵增加了子弹发射功能,增加了子弹与敌对精灵的碰撞检测,当角色精灵子弹与敌对精灵碰撞后,它们都会从屏幕上消失. 二.场景层SKScene的修改 1. 在初始化场景层的方 ... 
- IOS 2D游戏开发框架 SpriteKit-->续(postion,锚点,游戏滚动场景)
		一. Postion 这里的postion和app开发中的layer.postion是一样的,postion的值代表该视图在父节点中的相对位置, 比如一个试图的父节点是self.view, 这里我们想 ... 
- Unity3D 创建一个简单的2D游戏
		开始研究Unity3d 中的2D游戏. 首先创建出一个项目: 然后创建出一个场景: 然后添加一个背景: 然后创建一个主人公对象: 可以是自己做的素材,也可以是用unity裁剪的素材, 下面贴出裁剪素材 ... 
随机推荐
- 【awesome-dotnet-core-learning】(2)-Sprache.Calc-表达式计算器
			[awesome-dotnet-core-learning](2)-Sprache.Calc-表达式计算器 示例代码托管在GITHUB上, 欢迎STAR! 严格来说, Sprache.Calc只是上一 ... 
- EntityFramework附加实体
			//0.0创建修改的 实体对象 Models.BlogArticle model = new BlogArticle(); model.AId = 12; model.ATitle = "新 ... 
- javascript中 Function.prototype.apply()与Function.prototype.call() 对比详解
			Function.prototype.apply()|Function.prototype.call() apply()方法可以在使用一个指定的 this 值和一个参数数组(或类数组对象)的前提下调用 ... 
- VirtualBox centos7扩容
			有时候扩容还真不如重新建立一个大硬盘的系统,但是如果你安装了好多东西的话,那还是来扩容一下吧. 查看磁盘格式 在virtualBox中右键点击虚拟机->设置->存储,如 ... 
- AJAX   基本结构   数据加载
			AJAX -- 网页数据异步加载 .ashx 一般处理程序 json 数据格式,在不同的语言之间传递数据 对象格式: "{"key":"value& ... 
- [Laravel] Laravel的基本数据库操作部分
			[laravel] laravel的数据库配置 找到程序目录结构下.env文件 配置基本的数据库连接信息 DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE=blog ... 
- 【Java并发编程】18、PriorityBlockingQueue源码分析
			PriorityBlockingQueue是一个基于数组实现的线程安全的无界队列,原理和内部结构跟PriorityQueue基本一样,只是多了个线程安全.javadoc里面提到一句,1:理论上是无界的 ... 
- Matlab 如何输入矩阵
			A=[1 2 3;4 5 6;7 8 9],每行之间用分号隔开 也可以用循环控制输入 n=input('请输入矩阵阶数:') for i=1:n for j=1:n a(i,j ... 
- canvas-3radialGradient.html
			<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ... 
- js之搜索框
			目标效果:点击搜索框,搜索框内提示信息消失,可输入搜索信息,点击搜索框外搜索框如果没提示信息或者为空时,显示搜索框提示信息,如果有搜索信息,显示搜索信息. 代码如下: <!DOCTYPE htm ... 
 
			
		

