Unity3D 2dtoolkit 物理游戏开发
2013-10-28 20:04
344 查看
Unity3D这个游戏引擎写得很不错,Asset Store里面卖的插件有些也是相当不错,游戏开发起来越来越便捷了。
2dtoolkit 是里面专门做2d游戏的插件,说做游戏,可能有点绝对,它的ui系统貌似也不错,在3d引擎上做2d游戏,在游戏渲染方面不用说肯定很好,话不多说,介绍一下今天的学习笔记吧,就是用2dtoolkit开发物理游戏。
我所说物理游戏,只是一个小入门,就是怎样做碰撞,模拟出真实的物理世界。
首先先设置一下摄像机,你可以选择使用unity自带的Camera,当然也可以用2dtoolkit提供的Camera,不同之处就是2dtoolkit的在适应屏幕上,尤其在锚点上面还是挺不错的,我用的2dtoolkit的,属性设置都一样,在Camera的Inspector中的Projection改为正交,即Orthographic,再把下面一栏中的Size改为10,如
![](http://img.blog.csdn.net/20131028192925953?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdzMzNzE5ODMwMg==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
之前我一直都是设置Size为1,但是模拟出来的效果很不好,官方给的demo也是这个参数(这个问题我是找了好久才发现的。。。)。
之后我们来添加一些地面吧,首先先选择添加2dsprite,选择我们需要的路面,添加后会发现很小,是因为我们之前设置的是10,所以比例自然就是是1:10,解决方法就是将他们都扩大10倍就ok了,2dtoolkit里面添加的图片修改大小,最好就在它里面的属性中修改,Z轴也需要修改,不过可以不用一样,可以所有的精灵Z轴都设置一样的。
![](http://img.blog.csdn.net/20131028193546031?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdzMzNzE5ODMwMg==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
然后摆放到屏幕中,随便放哪都行,然后在上面这个属性框里,点击Sprite右边有个“e”的按钮,点开修改它的碰撞体
![](http://img.blog.csdn.net/20131028194148609?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdzMzNzE5ODMwMg==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
因为这个是方形,选择盒型碰撞体就好了。修改完之后别忘了点击“Commit”提交,我就是觉得这个做的不是很好,修改完总是会忘,要是能自动保存就好了。
然后在Hierarchy中添加一个静态精灵batcher
![](http://img.blog.csdn.net/20131028194501796?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdzMzNzE5ODMwMg==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
把我们刚才建的路面拖进去后,点击属性栏里面的Commit,你会发现它的子物体已经没有了,要修改再重新点“Edit”即可。
这是为了提高游戏效率。
![](http://img.blog.csdn.net/20131028194702546?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdzMzNzE5ODMwMg==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
下面我们添加可运动的物体,选择添加木盒,文件名叫“crate”,选择它的碰撞类型为盒型,放在你需要的位置。
至于不规则的物体,也来搞一个吧,选择添加“Rock”,然后在修改它的碰撞体,需要强调的下图我都标注出来了,如果需要添加顶点,只要点击边就会添加顶点了。
![](http://img.blog.csdn.net/20131028195303296?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdzMzNzE5ODMwMg==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
然后摆放一下位置,下面是我随便摆的
![](http://img.blog.csdn.net/20131028195459625?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdzMzNzE5ODMwMg==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
选择我们的静态精灵,选择添加Mesh Collider,石头添加Mesh Collider和rigidbody,木盒添加Box Collider和Rigidbody
下面这个是关键!!!
这些运行的物体需要锁定几个面,不然运动出来就前后倒掉了。。。原因我就不多说了,想想就会明白了。
![](http://img.blog.csdn.net/20131028195843812?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdzMzNzE5ODMwMg==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
为了让地面碰撞好点,可以加长一些碰撞体,即Z轴
![](http://img.blog.csdn.net/20131028200219140?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdzMzNzE5ODMwMg==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
这样点击运行之后就可以看到效果了。
![](http://img.blog.csdn.net/20131028200318390?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdzMzNzE5ODMwMg==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
可能会有一些疏漏点没有说的很详细,还请大家有问题提出来哈~
2dtoolkit 是里面专门做2d游戏的插件,说做游戏,可能有点绝对,它的ui系统貌似也不错,在3d引擎上做2d游戏,在游戏渲染方面不用说肯定很好,话不多说,介绍一下今天的学习笔记吧,就是用2dtoolkit开发物理游戏。
我所说物理游戏,只是一个小入门,就是怎样做碰撞,模拟出真实的物理世界。
首先先设置一下摄像机,你可以选择使用unity自带的Camera,当然也可以用2dtoolkit提供的Camera,不同之处就是2dtoolkit的在适应屏幕上,尤其在锚点上面还是挺不错的,我用的2dtoolkit的,属性设置都一样,在Camera的Inspector中的Projection改为正交,即Orthographic,再把下面一栏中的Size改为10,如
之前我一直都是设置Size为1,但是模拟出来的效果很不好,官方给的demo也是这个参数(这个问题我是找了好久才发现的。。。)。
之后我们来添加一些地面吧,首先先选择添加2dsprite,选择我们需要的路面,添加后会发现很小,是因为我们之前设置的是10,所以比例自然就是是1:10,解决方法就是将他们都扩大10倍就ok了,2dtoolkit里面添加的图片修改大小,最好就在它里面的属性中修改,Z轴也需要修改,不过可以不用一样,可以所有的精灵Z轴都设置一样的。
然后摆放到屏幕中,随便放哪都行,然后在上面这个属性框里,点击Sprite右边有个“e”的按钮,点开修改它的碰撞体
因为这个是方形,选择盒型碰撞体就好了。修改完之后别忘了点击“Commit”提交,我就是觉得这个做的不是很好,修改完总是会忘,要是能自动保存就好了。
然后在Hierarchy中添加一个静态精灵batcher
把我们刚才建的路面拖进去后,点击属性栏里面的Commit,你会发现它的子物体已经没有了,要修改再重新点“Edit”即可。
这是为了提高游戏效率。
下面我们添加可运动的物体,选择添加木盒,文件名叫“crate”,选择它的碰撞类型为盒型,放在你需要的位置。
至于不规则的物体,也来搞一个吧,选择添加“Rock”,然后在修改它的碰撞体,需要强调的下图我都标注出来了,如果需要添加顶点,只要点击边就会添加顶点了。
然后摆放一下位置,下面是我随便摆的
选择我们的静态精灵,选择添加Mesh Collider,石头添加Mesh Collider和rigidbody,木盒添加Box Collider和Rigidbody
下面这个是关键!!!
这些运行的物体需要锁定几个面,不然运动出来就前后倒掉了。。。原因我就不多说了,想想就会明白了。
为了让地面碰撞好点,可以加长一些碰撞体,即Z轴
这样点击运行之后就可以看到效果了。
可能会有一些疏漏点没有说的很详细,还请大家有问题提出来哈~
相关文章推荐
- Unity3D游戏开发之游戏读/存档功能在Unity3D中的实现
- 【Unity3D游戏开发学习笔记】(六)上帝之手—GameObject的操作
- 游戏开发中的数学和物理算法(3):点之间的距离
- 【Visual C++】游戏开发笔记二十二 游戏基础物理建模(四) 粒子系统模拟(一)
- 【Unity3D游戏开发学习笔记】(四)一切都动起来—Animator组件的应用
- 游戏开发中的数学和物理算法(12):矢量的加减法
- Unity3D开发类似保龄球游戏
- 【麦可网】Cocos2d-X跨平台游戏开发学习笔记---第二十五课:Cocos2D-X物理引擎之Box2D8-10
- 学习泰课的Unity3D黑暗之光RPG游戏开发(一)——学习目录介绍
- Unity3d使用蓝牙(bluetooth)开发IOS点对点网络游戏
- 【Visual C++】游戏开发笔记二十 游戏基础物理建模(二) 重力系统的模拟
- Unity3D 游戏开发构架篇 ——输入控制
- 【Unity3D】学习笔记(第2记) 2D游戏开发基本技巧之背景制作
- 使用Unity3D 自主实战开发的赛车游戏实例,关键点记录 (二)之地形场景漫游导览制作
- 游戏开发中的数学和物理算法(2):定义线
- 游戏开发中的数学和物理算法(12):矢量的加减法
- 使用Unity3D开发网络游戏
- unity3d教程:游戏开发算法(四)
- Unity3D手机斗地主游戏开发实战(03)_地主牌显示和出牌逻辑
- Unity3d开发“类三消”游戏