一、前言
這篇文章將會講述座標(Transform)與剛體(Rigidbody)在移動上的優點與缺點,並且迪出我的經驗與看法。
二、座標系統(Transform)
初學者在學習如何移動物件的時候,第一個可能會學習到的移動方式,應該就是座標系統的移動了。
1. 優點
寫了怎麼樣的程式,就會有怎麼樣的反應。座標系統的控制非常直觀,程式的表現與撰寫的內容完全一樣;座標系統的運作非常簡單,隨之而來的就是資源上的輕便,它比較省資源。
2. 缺點
控制座標移動的方式,其實就是直接指定座標,哪怕是旋轉也一樣,因此座標系統的缺點也很明顯,就是不容易使用碰撞體,基本上碰撞會被座標指定給忽視,進而導致無效。
因為是每一個影格去移動,因此也不會有其他力的配合,反作用力或摩擦力等偏向物理系統的東西都不會出現,除非自己有特別去撰寫。
3. 我的經驗
座標系統的入門很容易,上手卻不容易,因為單純的使用以後,就要開始學習座標的計算與變化;在了解座標的變換以後,要學會使用 Unity 內建的數學函式運用,這一塊就更困難了。
在這段過程中,我是直接學習剛體系統,用物理系統的方式去處理大多數的問題,因此有一個過渡,只需要慢慢掌握旋轉的方式即可。
三、剛體系統(Rigidbody)
若在撰寫物理系統運動時,有很高的機率會被剛體系統的 velocity 吸引,因此接觸了剛體系統,這是一個模擬物理運動的移動方式。
1. 優點
剛體系統在一開始就給予了一些運動,譬如重力。面對其他物件的碰撞也會做相應的改變,因此是一種相對省事的系統,也比較容易上手,通常剛體一定會跟碰撞體座配合,也是更好處理碰撞的方式。
相對來說,這樣的設計也會吃上比較高的效能,雖然我不確定有多少,但相對於座標系統來說是肯定繁瑣許多。
2. 缺點
它比較複雜,這個複雜是指使用鋼體可能會出現不可預期的發展,譬如施力出問題,導致物體被不合理的力給打上天,原因可能是前幾天為了省事把重力改為 1000 而已。
物理系統有很多不同的內容,摩擦力、施力角度、重力、延遲,很多東西都會影響物體的運動,是一個更吃觀念的系統。
3. 我的經驗
雖然說他比較難以控制,但每一個變化都有理可據,因此熟悉以後其實會很方便做事,在程式撰寫的過程中也會比較容易有收穫,我自己是比較喜歡使用鋼體來做運算。
不過有要配合動畫的時候,還是請乖乖用座標系統,這樣才能比較明確的去撰寫一些配合,不容易動畫跟動作沒有搭配上,或是玩家的腳步沒有對上地板。
四、後記
這篇文章是我在搜尋我自己撰寫的文章後,發現我沒有一篇文章專門講述座標系統與剛體系統,因此就決定要來好好分析一下兩者的差別了。