可能已经知道了这个问题的答案,但无论如何都希望由社区来管理。
我有一个自定义对象,其中包含我需要输入预制件的信息。
我读过某个地方,在预制件上乱搞构造器是一个坏主意。那么最好通过预制件上的方法调用传递intitiatlization信息吗?
即:为预制件制作一个脚本,接受我的自定义对象进行配置?一种最佳实践问题。
答案 0 :(得分:0)
我将如何做到这一点。基本上,预制件需要一个参考(不一定是单独的脚本)到另一个预制件,需要额外的数据。
虽然问题是:为什么这些数据不能出现在预制件本身?
如果答案是"因为数据是全球性的并且有许多预制件"这个问题的一个很好的解决方案是ScriptableObject,它充当全局数据存储对象。脚本化对象具有脚本和检查器视图,就像其他游戏对象一样,您可以将脚本化对象的引用分配给预制件,然后预制件可以引用全局数据。
通常,ScriptableObject用于"原始数据"甚至是一个轻量级的游戏数据库。
创建ScriptableObject的脚本(有很多例子): http://wiki.unity3d.com/index.php/CreateScriptableObjectAsset
这篇文章用一个用例和代码示例解释了SO: http://buchhofer.com/2010/10/unity-toying-with-scriptable-objects/