博主近來開始學習Unity 打算做一些筆記來督促自己學習,希望這樣能改一改自己拖延以及堅持不久的壞毛病……
這些筆記里主要會寫一些博主學習時遇到的一些疑惑的地方,可能會有一些很弱智的,也可能是比較有用的。由於博主剛剛開始學習Unity,所以很可能在文章中間有一些說錯的地方,希望觀眾同學們及時幫忙指出,lz也會及時訂正。共同進步……
以下開始是正文:
在官方教程Roll-a-ball tutorial中的 COLLECTING THE PICK UP OBJECTS (http://unity3d.com/cn/learn/tutorials/projects/roll-a-ball/collecting-pick-up-objects?playlist=17141)中。添加了所有的“得分標記“之后,視頻中提到了一點:
“Unity為了優化性能,會計算場景(scene)內所有靜態碰撞體(static collider)的體積,並保存到緩存中。這樣對於那些不會移動的物體來說,便可以節約計算的資源。如果使靜態碰撞體發生移動,旋轉或縮放,則這個緩存會被重新計算生成,而這將會耗費一定的資源”。
因此,對於經常發生變換的物體,應該將其設定為動態碰撞體(dynamic collider),這樣的話,它們的變換將不會導致緩存在每一幀都被刷新,可以做到節約資源的目的。
同時視頻中也提到:
“(默認情況下)擁有一個剛體屬性(rigidbody)的碰撞體即為一個動態碰撞體,而沒有剛體屬性的碰撞體則為一個靜態碰撞體”。所以對於一些在場景內經常發生變化的物體(比如懸浮在空中旋轉的金幣等),需要為其賦予一個剛體屬性,這樣的話便可以在一定程度上節約計算資源。
當然,如果作為了剛體,則會受到重力的影響自動下沉。然而像漂浮旋轉的金幣這樣的東西多半需要設置為一個觸發器,所以不會受到碰撞體積的影響,而會穿過地面,直接掉下去。因此可以在剛體屬性的選項里面取消勾選“Use Gravity”選項,這樣就不會受到重力的影響。不過有些時候,可能需要忽略的不止是重力。所以可能更好的方法是勾選“Is Kinematic”選項,這樣的話這個剛體就不會受到任何力的影響,而只會通過transform進行變換。
