Unity物体往下掉 如何站在地面上


还未运行时的场景

一、问题

为了实现人物能站在平面上,给人物添加刚体并勾选use gravity后,人物一直往下掉
人物往下掉

二、解决方法

1.给人物添加collider组件,默认不勾选is Trigger
人物组件
2.collider要把人物包围(最好要把人物的脚包围)
在box collider组件的center与size选项可以调整包围盒大小
包围盒
3.运行后就可以站在地面了
人物站在地面上
4.如果发现人物会半嵌入地面里
人物半嵌入地面
4.1检查包围盒是否把人物包围了,如此小节第2点所示
4.2检查地面是否有mesh collider或其它collider组件,如果没有给其加上mesh collider,并不能勾选is Trigger。
地面需collider组件

三、简单分析

人物往下掉原因

  1. 人物没有collider组件,刚体组件又开启了重力,不知道什么时候停下来,所以一直往下掉。
  2. 虽然地面有mesh collider,但是unity规定碰撞检测collision,发生碰撞方(人物)需要有collider,而被碰撞方(地面)有没有刚体都不重要。
  3. 所以需要给人物加上collider组件,才能与地面发生碰撞检测collision

为什么人物与地面要取消勾选Is Trigger

  1. 如果一方勾选了Is Trigger,那么人物与地面接触,不会产生collision事件,而是Trigger事件
  2. 个人认为是Trigger只是检测到包围盒发生重叠与接触,但不处理这个事件
  3. 所以人物的刚体组件默认认为没有碰撞collision发生,就一直往下掉

仅代表我个人拙见,如有错误,欢迎指正,另外,谢谢观看

猜你喜欢

转载自blog.csdn.net/qq_34060370/article/details/124243699