之前玩过一款物理弹球的游戏覺得很有意思,也萌发了做一款类似的游戏这里讲讲如何做到碰撞后无损反弹。
作为一个业余游戏开发者而且知道Unity自带的物理引擎功能很完善,所以一开始就没打算自己写相关代码首先我自己这个项目是2D,所以里面用到都是2D组件或者材质
先创建一个3dunity小球弹跳,删掉3d碰撞盒加上2d碰撞盒。
我们在unity小球弹跳上加一个物理组件3D项目可以用Rigidbody这个组件,参数略有差别
墙壁就比较简单,创建四个cube围成个围牆,同理删掉3d碰撞盒加入2d碰撞盒(墙是方形,球是圆形组件不一样),其他都不需要设置我们只需要这个碰撞盒,都不需要加组件Rigidbody因为墙是不动,这样也比较省资源
给这个物理材质命名后,点击这个材质我们看到有两个属性
第一个是摩擦力系数,第二个是反弹系数想要无损碰撞反弹,反弹系数则填1
这样,一个无损的封闭的碰撞系统就完成
unity小球弹跳的发射比较简单,这里就不细说了
在运行中,发现如果unity小球弹跳的水平分速度太小碰撞后就变成0,这个问题困扰我很久找不到原因,甚至讓我想自己写这个碰撞机制查阅资料后才发现,这个物理材质还有一些参数设置具体看下图
红框就是罪魁祸首,默认值是1表示低于這个数值的速度将认为不是碰撞,速度也就消失
关于unity小球弹跳碰撞反弹就先写到这里后面继续研究,欢迎讨论!!!
unity3d跑酷游戏DEMO源码可以用来入门学習。 有障碍物可以跳跃。
版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。