iT邦幫忙

2021 iThome 鐵人賽

DAY 17
0
自我挑戰組

Unity 自主研究學習系列 第 29

Unity自主學習(二十九):物件移動錯誤

  • 分享至 

  • twitterImage
  •  

那麼上次把物件移動完成之後,確實也都可以使物件移動起來,以及產生跳躍。

不過實際上還是有問題存在的,後來我在場景添加一個方塊,並塑造成牆壁的樣子,並實際執行物件撞上牆之後的樣子,就出現了其他的問題了。
Yes
當上次可移動的方塊撞上牆壁時,如果持續按著方向鍵,嘗試突破的話,方塊會開始產生不自然的抖動,而後來想想,這是因為我程式上有邏輯的錯誤,先看一下上次移動物件的程式是怎麼運作的。

上次移動的程式:

transform.localPosition += new Vector3(2.5f, 0, 0) * Time.deltaTime; 

我們是將new Vector3的數值加到localPosition裡面原有的值,也就是說每次被執行都是固定在X座標加上2.5,但是我們被移動的方塊不可能每次都與牆壁的距離可以被2.5整除,就算可以...當持續按著方向鍵,物件依舊會不斷前進,在剛執行程式的那個影格,方塊就會跑到牆壁裡,而下個影格又會因為彼此"collider"碰撞,而又被擠出牆壁,但繼續按著方向鍵要往前,就又會跑進去,導致方塊不斷地塞進牆,並被擠出,而產生這種不斷抖動的感覺。

那讓物件動起來的程式肯定不止一種,所以只能再去找找其他解決辦法了,明天最後一天,至少要把物件移動的腳本弄到最好。


上一篇
Unity自主學習(二十八):Time.deltaTime
下一篇
Unity自主學習(三十):完美物件移動
系列文
Unity 自主研究學習30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言