unity3d關於碰撞問題

  這個是我作忍者遊戲出現的問題,作個記錄也爲之後有人遇到也能夠借鑑。由於剛接觸unity,因此對其所知甚少,說錯的地方請指教。測試

  • 問題:角色碰撞牆爲何會先觸發碰撞地面,而後再觸發碰撞牆

 

  • 想要的效果:是角色跑過去碰撞牆是不觸發貼牆向下滑的效果,只是讓它跑的動畫就行

 

 

  • 出現的結果:角色跑過去後,變成了貼牆下滑的動做,而後就動不了

  • 出現這樣的緣由:是由於角色的速度太快,所形成的偏差(角色的速度是加力給的,角色加了剛體)

       渲染幀的時間跟不上程序處理力速度的時間,因此產生了人物碰撞體碰到了牆,而後碰到了地面了,在渲染下一幀時,由於最後碰到的是地,因此發生碰撞      地面的事件,那它是怎麼回來的呢,應該是剛體檢測到牆,而後剛體又回來,就發生了碰撞牆的事件,而後觸發離開地面(這個是個人想法,後來我經過測試,把兩個剛  體放在一塊兒,運行後,他們會分開)動畫

      由於碰撞盒是每幀都會監聽的 。 打個比方, 如今有兩幀   第一幀個人人物跟牆的距離還有0.2米 ,第二幀幀渲染時候  個人人物可能已經移動了1米。 若是牆    體是0.5米的厚度,那麼碰撞快纔會觸發事件 , 那麼 你已經超過了牆體。(這句話跟下面圖是一位網友討論時他給的)spa

  • 經過調試的結果:

 

  這調試結果也驗證了猜測。3d

 

  • 我用的解決方案:
相關文章
相關標籤/搜索