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

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

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

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

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

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

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

    • 通过调试的结果:

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

    • 我用的解决方案:
  • 相关阅读:
    Conference deadlines
    waiting list
    BDA3 Chapter 1 Probability and inference
    PP: Articial Intelligence—TheRevolution Hasn’t HappenedYet
    兼容ie9文件上传,及现代浏览器实现进度条
    input 打开文件夹事件委托
    前端构建工具gulpjs的使用介绍及技巧
    如何编写兼容各主流邮箱的HTML邮件
    前端通用框架可行性研究报告之弹窗
    切换tab键,不聚焦a标签
  • 原文地址:https://www.cnblogs.com/lsgsanxiao/p/4653026.html
Copyright © 2011-2022 走看看