2014-12-05 82 views
0

可能已經知道這個答案了,但是想要由社區運行它。使用自定義基礎對象實例化預製

我有一個自定義對象,其中包含我需要提供給預製件的信息。

我已經讀過一些在預製件上構造出構造器的東西是一個糟糕的主意。那麼最好的選擇是通過預製的方法調用來傳遞信息?

即:爲接受我的自定義對象進行配置的預製腳本?一種最佳實踐問題。

回答

0

我就是這樣做的。基本上,預製件需要一個參考(不一定是一個單獨的腳本)到另一個預製件所需的額外數據。

雖然問題是:爲什麼這些數據不能在預製件本身?

如果答案是「因爲數據是全球性的,而且有很多預製件」,那麼問題的一個好的解決方案是ScriptableObject,它充當全局數據存儲對象。可編寫腳本的對象與其他遊戲對象一樣具有腳本和檢查器視圖,您可以將可引用腳本的對象的引用分配給可以引用全局數據的預製對象。

通常,ScriptableObject用於「原始數據」,甚至用作輕量級遊戲數據庫。創建是ScriptableObject

腳本(有很多例子): http://wiki.unity3d.com/index.php/CreateScriptableObjectAsset

這篇文章解釋了所以用一個用例和代碼示例: http://buchhofer.com/2010/10/unity-toying-with-scriptable-objects/

+0

感謝你爲這個。仍然習慣Unity的GUI環境。他們很容易做一些有趣的事情。這裏有另外一個我非常喜歡的例子: http://www.jacobpennock.com/Blog/?p=670 – gdbj 2014-12-05 23:22:17

+0

回想起來,儘管對腳本對象作爲我的數據源寄予厚望,但我轉向了SQLite。 SO不會序列化多態,這是一個要求。 :( – gdbj 2015-02-14 21:43:24