[请益] unity物件会互相穿透

楼主: leo88138 (柳丁)   2016-01-04 12:16:21
如题,小弟是自学新手
照者教学文章制作了太空射击游戏后发现
物体给了物理碰撞的设定后还是会穿过彼此
例如我给了player box collider和rigidbody
然后给了游戏边界 box collider
当他们相撞时会触发player的碰撞事件
但是飞机还是会穿过游戏边界
而且子弹打到敌人时敌人会扣写
But子弹会穿透过去...
我就用脚本设定子弹碰到物体会distroy
但我看书上的范例box互撞应该不能穿透才对
不知道这个问题要怎么解决呢
版本:5.3.1f
劳烦各位帮忙解惑
作者: cjcat2266 (CJ Cat)   2016-01-04 13:02:00
边界也要rigid body吧collider只是侦测碰撞用,不会处理碰撞反应
作者: pepsicola (喵吉拉)   2016-01-04 13:51:00
isTrigger跟isKinematic的状态?
楼主: leo88138 (柳丁)   2016-01-04 13:57:00
我查了网络上的资讯说被撞的可以不用有钢体其他的需要晚上回家看 在上课中谢谢各位帮忙><
作者: gino0717 (gino0717)   2016-01-04 14:02:00
给个mesh collider吓吓他
作者: gyd (阿龙哥)   2016-01-04 15:17:00
1. destroy 2. 你是Destroy( this )还是Destroy(gameObject)?3. 穿透跟Destroy是两回事, 我这边只针对Destroy帮找问题
楼主: leo88138 (柳丁)   2016-01-04 15:56:00
destroy的部分没有问题从敌人脚本distroy other.gameobject目前剩下穿透的问题
作者: ysluke (Ysl)   2016-01-04 16:24:00
你预期的结果是碰撞后反弹而非穿透吗?会不会是collider上忘了加Physic Material?
楼主: leo88138 (柳丁)   2016-01-04 17:47:00
想做的部分是 飞机撞到墙壁后不能在前进目前撞到会触发碰撞事件 但飞机会穿过墙壁
作者: wix3000 (痒,好吃)   2016-01-04 18:35:00
墙上加rigidbody就好了啊
作者: xx1234561 (limanson)   2016-01-04 18:47:00
该不会你飞机的移动是用transform.Translate ?
作者: syatg951 (鲑鱼王)   2016-01-04 18:51:00
移动的物体有rigibody吧?rigibody里面有锁定xyz轴的功能,通通别打勾,再测试,因为你可能锁到某个轴向,导致无法顺利“碰开”物件
楼主: leo88138 (柳丁)   2016-01-04 21:43:00
真的 移动是translate...这样会有什么问题吗
作者: akilight (OWeeeeeeeee~)   2016-01-04 21:54:00
translae=忽略物理,直接做位移=不会有碰撞判定你需要的是用rididbody.MovePosition()然后上面这条请把他放在FixedUpdate()里面执行
楼主: leo88138 (柳丁)   2016-01-05 00:15:00
好的 我研究看看
作者: BSpowerx (B.S)   2016-01-05 09:30:00
还有确定两者的layer是可以互相碰撞的
作者: bearkitten   2016-01-06 00:16:00
不管是translate或是设定position,都是瞬间移动,会穿透也是正常的,要让刚体正常碰撞,你只能AddForce或是简单点直接用CharacterController来控制

Links booklink

Contact Us: admin [ a t ] ucptt.com