unity3d关于碰撞问题

  这个是我作忍者游戏出现的问题,作个记录也为之后有人遇到也能够借鉴。由于刚接触unity,因此对其所知甚少,说错的地方请指教。测试

  • 问题:角色碰撞墙为何会先触发碰撞地面,而后再触发碰撞墙

 

  • 想要的效果:是角色跑过去碰撞墙是不触发贴墙向下滑的效果,只是让它跑的动画就行

 

 

  • 出现的结果:角色跑过去后,变成了贴墙下滑的动做,而后就动不了

  • 出现这样的缘由:是由于角色的速度太快,所形成的偏差(角色的速度是加力给的,角色加了刚体)

       渲染帧的时间跟不上程序处理力速度的时间,因此产生了人物碰撞体碰到了墙,而后碰到了地面了,在渲染下一帧时,由于最后碰到的是地,因此发生碰撞      地面的事件,那它是怎么回来的呢,应该是刚体检测到墙,而后刚体又回来,就发生了碰撞墙的事件,而后触发离开地面(这个是个人想法,后来我经过测试,把两个刚  体放在一块儿,运行后,他们会分开)动画

      由于碰撞盒是每帧都会监听的 。 打个比方, 如今有两帧   第一帧个人人物跟墙的距离还有0.2米 ,第二帧帧渲染时候  个人人物可能已经移动了1米。 若是墙    体是0.5米的厚度,那么碰撞快才会触发事件 , 那么 你已经超过了墙体。(这句话跟下面图是一位网友讨论时他给的)spa

  • 经过调试的结果:

 

  这调试结果也验证了猜测。3d

 

  • 我用的解决方案:
相关文章
相关标签/搜索