[請益] unity使用transform撞牆抖動問題

看板GameDesign (遊戲設計)作者 (kons)時間4年前 (2020/11/23 04:25), 4年前編輯推噓5(508)
留言13則, 4人參與, 4年前最新討論串1/1
我使用transform來使角色移動, 把地圖物件和角色加上碰撞之後,只要角色撞到障礙物件, 角色就會開始抖動,然後卡死。 推測應該是利用transform角色要移動到該格,但該格又有碰撞,所以產生BUG, 利用rigidbody2D的方式移動就不會產生該問題, 但目前用rigidbody2D沒辦法做到一次移動一格, 請問有什麼比較好的解決方法嗎?謝謝。 -- 至今我仍然深深相信,我是個帥哥,不過是量子力學定義中的帥哥。 當沒人觀測我的時候,我肯定是全地球最帥的男人。 Line:kons0815 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 180.177.32.178 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/GameDesign/M.1606076720.A.8CB.html

11/23 04:36, 4年前 , 1F
聽起來你要棋盤式移動又要有物理 可以試試看 棋盤式+
11/23 04:36, 1F

11/23 04:36, 4年前 , 2F
檢查下一個來播放動畫或是物理+計算到下一個所需的力
11/23 04:36, 2F

11/23 04:36, 4年前 , 3F
道和速度
11/23 04:36, 3F
感謝回覆, 我物理主要是要拿來做場景碰撞,讓角色在地圖上無法走過障礙物(避免穿牆), 剛網路查了一下,似乎可以用addforce給角色一個反向力抵銷,有點複雜。

11/23 05:05, 4年前 , 4F
add force推動物體 但是預設是有摩擦力的 摩擦力也可
11/23 05:05, 4F

11/23 05:05, 4年前 , 5F
以調整
11/23 05:05, 5F

11/23 08:34, 4年前 , 6F
我猜應該是物理偵測器在該幀判斷已經碰到障礙物但是腳本
11/23 08:34, 6F

11/23 08:34, 4年前 , 7F
還是繼續往前引發抖動 可以試試快接近障礙物時 自己判斷
11/23 08:34, 7F

11/23 08:34, 4年前 , 8F
下一幀是否碰到障礙物提前停止
11/23 08:34, 8F

11/23 09:10, 4年前 , 9F
試試看fixedupdate
11/23 09:10, 9F

11/23 09:11, 4年前 , 10F
因為物理跟update其實不同步,update修改transform就跟物
11/23 09:11, 10F

11/23 09:11, 4年前 , 11F
理衝突..
11/23 09:11, 11F

11/23 09:12, 4年前 , 12F
看是要直接控制速度vec,或是乾脆不要用物理
11/23 09:12, 12F
感謝各位大大的建議, 請教大神後,利用 private void OnCollisionEnter2D(Collision2D collision) 發生碰撞後,直接回到原本位置就行了。 ※ 編輯: kons (180.177.32.178 臺灣), 11/24/2020 00:50:51

11/25 00:32, 4年前 , 13F
你需要 rigibody.MovePosition
11/25 00:32, 13F
文章代碼(AID): #1VkiamZB (GameDesign)
文章代碼(AID): #1VkiamZB (GameDesign)