博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
unity3d关于碰撞问题
阅读量:5219 次
发布时间:2019-06-14

本文共 606 字,大约阅读时间需要 2 分钟。

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

  • 问题:角色碰撞墙为什么会先触发碰撞地面,然后再触发碰撞墙

 

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

 

 

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

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

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

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

  • 通过调试的结果:

 

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

 

  • 我用的解决方案:

转载于:https://www.cnblogs.com/lsgsanxiao/p/4653026.html

你可能感兴趣的文章
Qt重写paintEvent方法遇到的问题
查看>>
Sql常见面试题 受用了
查看>>
知识不是来炫耀的,而是来分享的-----现在的人们却…似乎开始变味了…
查看>>
CSS背景颜色、背景图片、平铺、定位、固定
查看>>
口胡:[HNOI2011]数学作业
查看>>
我的第一个python web开发框架(29)——定制ORM(五)
查看>>
中国剩余定理
查看>>
基础笔记一
查看>>
uva 10137 The trip
查看>>
Count Numbers
查看>>
编写高质量代码改善C#程序的157个建议——建议110:用类来代替enum
查看>>
网卡bond技术
查看>>
UITabbarController的UITabbarItem(例:"我的")点击时,判断是否登录
查看>>
UNIX基础知识之输入和输出
查看>>
【洛谷 P1666】 前缀单词 (Trie)
查看>>
对称加密和非对称加密
查看>>
数据库锁机制及乐观锁,悲观锁的并发控制
查看>>
图像处理中双线性插值
查看>>
RobHess的SIFT代码解析之RANSAC
查看>>
03 线程池
查看>>