zoukankan      html  css  js  c++  java
  • unity3d关于碰撞问题

      这个是我做忍者游戏出现的问题,做个记录也为以后有人遇到也可以借鉴。因为刚接触unity,所以对其所知甚少,说错的地方请指教。

    • 问题:角色碰撞墙为什么会先触发碰撞地面,然后再触发碰撞墙
    • 想要的效果:是角色跑过去碰撞墙是不触发贴墙向下滑的效果,只是让它跑的动画就行

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

    • 出现这样的原因:是因为角色的速度太快,所造成的误差(角色的速度是加力给的,角色加了刚体)

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

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

    • 通过调试的结果:

      这调试结果也验证了猜想。

    • 我用的解决方案:
  • 相关阅读:
    转:Spark User Defined Aggregate Function (UDAF) using Java
    同步类容器和并发类容器
    线程间通信
    线程安全
    浅入tomcat
    PLSQL操作excel
    Eclipse中使用Maven创建web项目
    PLSQL数据库操作(excel)
    Python学习-列表深浅拷贝
    Python学习-列表元组字典操作
  • 原文地址:https://www.cnblogs.com/lsgsanxiao/p/4653026.html
Copyright © 2011-2022 走看看