作者leo88138 (柳丁)
看板GameDesign
标题[请益] 物件会互相穿透
时间Mon Jan 4 12:16:21 2016
如题,小弟是自学新手
照者教学文章制作了太空射击游戏後发现
物体给了物理碰撞的设定後还是会穿过彼此
例如我给了player box collider和rigidbody
然後给了游戏边界 box collider
当他们相撞时会触发player的碰撞事件
但是飞机还是会穿过游戏边界
而且子弹打到敌人时敌人会扣写
But子弹会穿透过去...
我就用脚本设定子弹碰到物体会distroy
但我看书上的范例box互撞应该不能穿透才对
不知道这个问题要怎麽解决呢
版本:5.3.1f
劳烦各位帮忙解惑
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 60.250.188.161
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/GameDesign/M.1451880983.A.4C7.html
※ 编辑: leo88138 (60.250.188.161), 01/04/2016 12:17:20
※ 编辑: leo88138 (60.250.188.161), 01/04/2016 12:44:21
1F:推 cjcat2266: 边界也要rigid body吧01/04 13:02
2F:→ cjcat2266: collider只是侦测碰撞用,不会处理碰撞反应01/04 13:03
3F:→ pepsicola: isTrigger跟isKinematic的状态?01/04 13:51
4F:→ leo88138: 我查了网路上的资讯说被撞的可以不用有钢体01/04 13:57
5F:→ leo88138: 其他的需要晚上回家看 在上课中01/04 13:59
6F:→ leo88138: 谢谢各位帮忙><01/04 13:59
7F:推 gino0717: 给个mesh collider吓吓他01/04 14:02
8F:→ gyd: 1. destroy 2. 你是Destroy( this )还是Destroy(gameObject)?01/04 15:17
9F:→ gyd: 3. 穿透跟Destroy是两回事, 我这边只针对Destroy帮找问题01/04 15:23
10F:→ leo88138: destroy的部分没有问题01/04 15:56
11F:→ leo88138: 从敌人脚本distroy other.gameobject01/04 15:56
12F:→ leo88138: 目前剩下穿透的问题01/04 15:58
※ 编辑: leo88138 (42.74.23.92), 01/04/2016 15:58:36
13F:→ ysluke: 你预期的结果是碰撞後反弹而非穿透吗? 01/04 16:24
14F:→ ysluke: 会不会是collider上忘了加Physic Material? 01/04 16:25
15F:→ leo88138: 想做的部分是 飞机撞到墙壁後不能在前进 01/04 17:47
16F:→ leo88138: 目前撞到会触发碰撞事件 但飞机会穿过墙壁 01/04 17:48
17F:推 wix3000: 墙上加rigidbody就好了啊 01/04 18:35
18F:→ xx1234561: 该不会你飞机的移动是用transform.Translate ? 01/04 18:47
19F:推 syatg951: 移动的物体有rigibody吧?rigibody里面有锁定xyz轴的功 01/04 18:51
20F:→ syatg951: 能,通通别打勾,再测试,因为你可能锁到某个轴向,导致 01/04 18:51
21F:→ syatg951: 无法顺利“碰开”物件 01/04 18:51
22F:→ leo88138: 真的 移动是translate... 01/04 21:43
23F:→ leo88138: 这样会有什麽问题吗 01/04 21:44
24F:推 akilight: translae=忽略物理,直接做位移=不会有碰撞判定 01/04 21:54
25F:→ akilight: 你需要的是用rididbody.MovePosition() 01/04 21:54
26F:→ akilight: 然後上面这条请把他放在FixedUpdate()里面执行 01/04 21:54
27F:→ leo88138: 好的 我研究看看 01/05 00:15
28F:推 BSpowerx: 还有确定两者的layer是可以互相碰撞的 01/05 09:30
29F:→ bearkitten: 不管是translate或是设定position,都是瞬间移动,会 01/06 00:16
30F:→ bearkitten: 穿透也是正常的,要让刚体正常碰撞,你只能AddForce 01/06 00:16
31F:→ bearkitten: 或是简单点直接用CharacterController来控制 01/06 00:21