开启辅助访问
 找回密码
 注册帐号

扫一扫,访问微社区

问答求助

关注:498

当前位置:游戏蛮牛 技术专区 问答求助

_____________________________________________________________________________________________________________
问答求助版块规则:

  1、问题尽量描述清楚
      2、代码要放在代码块里
      3、附件最好放到云盘,然后把链接放到TXT文档里,上传TXT文档。【最好没有附件,你懂得】
      4、本版块回复不得无意义,如:顶、呵呵、不错......以及擦边!【真的会扣分的哦】严重者,封IP!
      5、问题得到解决,请选择最佳答案。
      6、若问题是你自己解决了,可以联系管理员,返还蛮牛币,写下你的答案,另有蛮牛币奖赏。
_____________________________________________________________________________________________________________
查看: 93|回复: 5

[基本操作] rigidbody 问题

[复制链接]  [移动端链接]
5熟悉之中
770/1000
排名
7952
昨日变化
4

3

主题

518

帖子

770

积分

Rank: 5Rank: 5

UID
220880
好友
7
蛮牛币
781
威望
0
注册时间
2017-5-6
在线时间
125 小时
最后登录
2018-1-13
发表于 2018-1-13 10:28:52 | 显示全部楼层 |阅读模式
5蛮牛币
  给一个物体添加rigidbody 和碰撞盒以后,会一直向下掉,击穿plane的碰撞盒 ,物体的碰撞盒没有嵌在plane里边


回复

使用道具 举报

7日久生情
1644/5000
排名
4081
昨日变化
24

7

主题

850

帖子

1644

积分

Rank: 7Rank: 7Rank: 7Rank: 7

UID
168159
好友
3
蛮牛币
5188
威望
0
注册时间
2016-9-12
在线时间
499 小时
最后登录
2018-1-20

迈向小康锦衣玉食

发表于 2018-1-13 14:41:38 | 显示全部楼层
一定是你勾选你了 trigger

回复

使用道具 举报

4四处流浪
441/500
排名
7870
昨日变化
2

8

主题

184

帖子

441

积分

Rank: 4

UID
252311
好友
4
蛮牛币
754
威望
0
注册时间
2017-11-3
在线时间
123 小时
最后登录
2018-1-14
发表于 2018-1-13 17:43:25 | 显示全部楼层
楼上正解 istrigger别勾选就OK了

回复

使用道具 举报

排名
20796
昨日变化
6

1

主题

8

帖子

45

积分

Rank: 1

UID
263289
好友
0
蛮牛币
65
威望
0
注册时间
2018-1-8
在线时间
18 小时
最后登录
2018-1-19
发表于 6 天前 | 显示全部楼层
不行就取消重力

回复

使用道具 举报

3偶尔光临
246/300
排名
8581
昨日变化
3

2

主题

69

帖子

246

积分

Rank: 3Rank: 3Rank: 3

UID
223222
好友
4
蛮牛币
270
威望
0
注册时间
2017-5-21
在线时间
66 小时
最后登录
2018-1-19
发表于 5 天前 | 显示全部楼层
重力和OnTrriger同时存在物体是不会运动的,重力不存在   ontrrriger存在会进行物体穿透的效果      重力存在   不存在ontrriger不会对物体进行碰撞  但是具有重力的一切特性

回复

使用道具 举报

排名
34197
昨日变化
13

0

主题

15

帖子

34

积分

Rank: 1

UID
176485
好友
0
蛮牛币
27
威望
0
注册时间
2016-10-18
在线时间
15 小时
最后登录
2018-1-19
发表于 5 天前 | 显示全部楼层
楼上给出解决方法了。我这里贴一下自己之前收藏的关于刚体的笔记。楼主有兴趣可以看看。
1.OnTriggerEnter与OnCollisionEnter有什么区别
1)如果想实现两个刚体物理的实际碰撞效果时候用OnCollisionEnter,Unity引擎会自动处理刚体碰撞的效果。OnCollisionEnter方法必须是在两个碰撞物体都不勾选isTrigger的前提下才能进入。
2)如果想在两个物体碰撞后自己处理碰撞事件用OnTriggerEnter 。只要勾选一个isTrigger那么就能进入OnTriggerEnter方法。
OnCollisionEnter和OnTriggerEnter是冲突的不能同时存在。

触发信息检测:
1.MonoBehaviour.OnTriggerEnter( Collider other )当进入触发器
2.MonoBehaviour.OnTriggerExit( Collider other )当退出触发器
3.MonoBehaviour.OnTriggerStay( Collider other )当逗留触发器

碰撞信息检测:
1.MonoBehaviour.OnCollisionEnter( Collision collisionInfo ) 当进入碰撞器
2.MonoBehaviour.OnCollisionExit( Collision collisionInfo ) 当退出碰撞器
3.MonoBehaviour.OnCollisionStay( Collision collisionInfo )  当逗留碰撞器

碰撞图:
从上面的图中我们看出来碰撞的双方中一定要有一个Rigidbody存在,并且碰撞双方必须都要有碰撞体组件
就是发生碰撞的主体一定是要带刚体的,即只有带刚体的碰撞体去撞其他碰撞体时,双方才会收到碰撞事件,以下是我做的实验:
一、控制A(刚体加碰撞体)撞击 静止的B(只有碰撞体),双方能收到碰撞事件。
二、控制B(只有碰撞体)撞击 静止的A(刚体加碰撞体),双方收不到碰撞事件。
三、让A(刚体加碰撞体)自由下落,然后控制B(只有碰撞体)去撞击A,双方能受到碰撞事件。
得出的结论似乎是如果碰撞双方只有一个有刚体,那么那个刚体一定要处于运动的状态下才会有碰撞事件发生。


触发图:


下面就是我做的测试情况,都是A物体去撞B物体。
一、A(碰撞体),B(没有碰撞体,无论有没有刚体),没有触发事件。
二、A(碰撞体),B(碰撞体),没有触发事件。
二、A(碰撞体和刚体,开启IsTrigger),B(碰撞体,关闭IsTrigger),双方都能收到触发事件。
三、A(碰撞体和刚体,关闭IsTrigger),B(碰撞体,开启IsTrigger),双方都能收到触发事件。
四、A (碰撞体,关闭IsTrigger),B(碰撞体和刚体,开启IsTrigger),没有触发事件。
五、A (碰撞体,开启IsTrigger),B(碰撞体和刚体,关闭IsTrigger),没有触发事件。

额外实验:
六、A(碰撞体和刚体,开启IsTrigger)自由下落,B(碰撞体)撞击A,双方都能收到触发事件。

根据上面的实验得出,如果要收到触发事件,必须满足如下三个条件:
1、必须都要有碰撞器组件(Collider),其实上面的碰撞事件同样也需要这个前提条件。
2、必须有一个物体带刚体组件,并且处于运动状体中(包括主动运动去撞击别人和在运动过程中被别人撞击)。
3、两个碰撞器中至少有一个开启了IsTrigger。

此外还有两点:
一、产生触发事件的两个物体会相互穿越,准确的说是因为开启IsTrigger那个物体会被物理引擎锁忽略掉,所以会产生两个物体穿越的情况。
二、两个对象要么都收到碰撞事件,要么都收到触发事件,不会出现一个收到触发事件,一个收到碰撞事件的情况。

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册帐号

本版积分规则

关闭

站长推荐 上一条 /1 下一条

快速回复 返回顶部 返回列表