FLAMEc隨手記

一陣風飄過~~~

0%

unity用compoment掛功能開發機制

Unity的運作方式讓開發者可以在一個GameObject上面自由的掛Compoment~

這邊的Compoment是一個class繼承了MonoBehaviour!!!

(這邊不討論繼承Compoment和MonoBehaviour差異~)

用血條來說好了~

怪物和玩家物件多半都會有血量設定和顯示血條~

但是有血量並不一定會顯示血條!!比如隱形狀態玩家~~~~

所以可以預見的是血量和血調顯示會設計成分開的~~~

因為像BOSS等特殊怪可能會有特殊顯示方式!

那麼可以設計一個血條class~

只需要掛到角色上面就會顯示血條!!

這時候就可以將血條拆開變成一個Compoment~

要顯示在掛上去~要特殊血條只需要掛對應血條Compoment即可!!

就會形成一個特殊狀況!!如果這個GameObject是一個可破壞物件~

沒被打到不會顯示血條~~~

那就會變成一開始都沒血條~~~

等到被玩家攻擊後才加上血條Compoment顯示血條~

當然一些邏輯判斷也可以用GetComponent來檢查狀態~~~

這樣做很好用,但是不宜過度使用!!!

比如說Attacter這種屬性,掛上去代表有攻擊力~

然後可被攻擊物件掛上AttactAble的Compoment~

在加上比如PhysicDamageAble等Compoment~

會造成一次傷害需要呼叫15次以上的function~

我碰到的就是18次?呼叫function沒有效能消耗嗎???

打到一次敵人用各種Compoment檢查可不可以打人、可不可以被打等等~~~

這樣不會有效能問題嗎?

因為這個專案是測試專案,所以沒有到測試效能問題狀況~

但是這很可能碰到,希望大家不要沒事丟著就走了….