推 nimajneb34: 聽起來你要棋盤式移動又要有物理 可以試試看 棋盤式+ 11/23 04:36
→ nimajneb34: 檢查下一個來播放動畫或是物理+計算到下一個所需的力 11/23 04:36
→ nimajneb34: 道和速度 11/23 04:36
感謝回覆,
我物理主要是要拿來做場景碰撞,讓角色在地圖上無法走過障礙物(避免穿牆),
剛網路查了一下,似乎可以用addforce給角色一個反向力抵銷,有點複雜。
推 nimajneb34: add force推動物體 但是預設是有摩擦力的 摩擦力也可 11/23 05:05
→ nimajneb34: 以調整 11/23 05:05
推 ura1210: 我猜應該是物理偵測器在該幀判斷已經碰到障礙物但是腳本 11/23 08:34
→ ura1210: 還是繼續往前引發抖動 可以試試快接近障礙物時 自己判斷 11/23 08:34
→ ura1210: 下一幀是否碰到障礙物提前停止 11/23 08:34
推 LayerZ: 試試看fixedupdate 11/23 09:10
→ LayerZ: 因為物理跟update其實不同步,update修改transform就跟物 11/23 09:11
→ LayerZ: 理衝突.. 11/23 09:11
→ LayerZ: 看是要直接控制速度vec,或是乾脆不要用物理 11/23 09:12
感謝各位大大的建議,
請教大神後,利用 private void OnCollisionEnter2D(Collision2D collision)
發生碰撞後,直接回到原本位置就行了。
※ 編輯: kons (180.177.32.178 臺灣), 11/24/2020 00:50:51
推 sableangle: 你需要 rigibody.MovePosition 11/25 00:32