我有一個理論問題: 我有2個場景,Galaxy和SolarSystem。每個場景調用一個GUI相關功能來顯示當前選中的對象。 Galaxy將傳遞一個基本上是GalacticItem預製件的GameoOject,SolarSystem將傳遞一個GameObject SolarSystemItem預製件。我的團隊有一點討論的關於解決這個問題的方法:Unity 3d - 標籤或重載函數?
方法1: 標籤中的每個預製和功能有一個If
聲明一個預製和其他區分來完成其任務
方法2: 有一個重載函數:一個用Galaxy預製作爲參數,另一個用SolarSystem預製。
哪種方法更有意義,爲什麼?
謝謝
編輯1:
是否有使用一種方法VS其他的性能優勢?
是否有使用字符串/標記(方法1)需要關注的維護問題? IE:假設我必須將SolarSystem預製件的標籤從「SolarSystem」重命名爲「StellarObject」。現在我必須在每個將「SolarSystem」引用爲「StellarObject」的地方更改代碼。這是一個風險,因爲程序員有機會錯過某些東西,並且在編譯時不會被捕獲。
方法1真的是使用標籤的正確方法嗎?或者,標籤僅用於通過GameObject.FindWithTag
來識別特定對象嗎?
我可以想象(強調我沒有測試此)超載方法降低了運行速度,因爲哪個方法被執行將在編譯時決定。對我而言,如果在呈現方式上有明確的區別,那麼代碼也會更清晰。 – chsh 2014-11-04 13:49:50