丈夫欲遂平生志,一载寒窗一举汤。这篇文章主要讲述通过制作Flappy Bird了解Native 2D中的RigidBody2D和Collider相关的知识,希望能为你提供帮助。
作者:王选易,出处:http://www.cnblogs.com/neverdie/
欢迎转载,也请保留这段声明。如果你喜欢这篇文章,请点【推荐】。谢谢!
文章图片
引子
在第一篇文章【Unity3D基础教程】给初学者看的Unity教程(一):GameObject,Compoent,Time,Input,Physics我已经讲过了一些关于刚体和碰撞的关系,这次我们就通过Flappy Bird这个事例来讲解一下刚体和碰撞体在游戏中的具体应用。相关代码可以参考Flappy Bird的源码。
认识RigidBody
文章图片
- 当RigidBody2D的质量属性被设置为0时,刚体的质量变为无限大,此时刚体相当于静态刚体,永远一动不动。但是在Unity中你是无法把一个RigidBody2D的质量设置为0的,所以,当你想创建一个静态刚体时,只需要创建碰撞器,而不需要创建RigidBody2D。
- 当我们勾选了is Kenamatic选项时,这个RigidBody2D就不再受物理引擎控制,我们这时候需要通过Transform来控制RigidBody2D的移动,这个选项经常在脚本里对其进行设置。
认识Collider2D
在Add Component选项中点击添加Physics2D中的Collider2D即可添加一个碰撞器,碰撞器有以下三种:
- BoxCollider2D:盒状碰撞器,一般为矩形。
- CircleCollider2D:圆形碰撞器。
- PolygonCollider2D:多边形碰撞器
当然,针对同一个刚体,我们可以为这个刚体添加多个碰撞提来构造更加复杂的碰撞结构,在官方的岩石Demo – 2D Platformer中你可以看到相应的事例。
另外,我们可以通过将动画和刚体的运动结合的方式来构建更加有趣的运动效果,通过Transform的变换和通过RigidBody的变换不一定非得是必取其一的,关于动画的知识可以看看我的这篇博客:【Unity3D基础教程】给初学者看的Unity教程(三):通过制作Flappy Bird了解Native 2D中的Sprite,Animation。
关于Is Trigger
【通过制作Flappy Bird了解Native 2D中的RigidBody2D和Collider】如果对一个碰撞器勾选了Is Trigger选项,它就不会与其他没有勾选Is Trigger的碰撞器发生刚体碰撞,而会发生“Trigger 碰撞”,也就是说,这时碰撞时发送的消息是Trigger消息,而不是Collision消息,相应地在脚本中我们要对OnTriggerEnter进行重载,而不是对OnCollisionEnter进行重载。
下图对Collision和Trigger进行了总结,在分别勾选某些属性时,都会发送哪些消息:
文章图片
文章目录 系列文章
Unity3D基础教程
作者:王选易
推荐阅读
- SpringBoot application.yml logback.xml,多环境配置,支持 java -jar --spring.profiles.active
- 通过制作Flappy Bird了解Native 2D中的Sprite,Animation
- Android带索引联系人列表
- Android-async-http 的用法
- 本书已出版<拨云见日(基于android的内核与系统架构源代码分析 >)
- android 2048游戏实现
- Android开发之改动屏幕方向
- Android 中图能够用到的图片处理类BitmapUtils
- Android TextView中链接(link)点击事件的截取