[請益] 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