一、声明
只实现物理反弹的效果,不实现蹦床会有的视觉拉伸效果,请自行找相关代码
二、实现
经过我的实践,我发现要想实现一个平台反弹的效果,要么就选择给player添加一个物理材质(平台加了没用),

但是这样会造成一个问题,如果我们要弄一个3d控制器的游戏,那么没理由让玩家什么情况下都要弹起来吧。
2.1 老手操作
因此参考这篇优质文章https://blog.youkuaiyun.com/LLLLL__/article/details/117266549
我们可以给玩家移动代码中添加如下的代码 :
注意:
- 应避免使用
contacts[0],因为它会产生内存垃圾。改用GetContact或GetContacts,即other.GetContact(0).normal
private Vector3 lastDir;
private void LateUpdate()
{
lastDir = rb.velocity;
}
private void OnCollisionEnter(Collision other)
{
if (other.gameObject.tag == "Wall")
{
Vector3 reflexAngle = Vector3.Reflect(lastDir
Unity物理反弹实现与注意事项,

本文介绍了在Unity中实现物理反弹效果的方法,包括使用刚体和碰撞检测,以及新手和老手操作的区别。特别提到了避免内存垃圾和使用触发事件的问题。
最低0.47元/天 解锁文章
7152

被折叠的 条评论
为什么被折叠?



