使用自定义基础对象实例化预制件

时间:2014-12-05 17:13:43

标签: unity3d

可能已经知道了这个问题的答案,但无论如何都希望由社区来管理。

我有一个自定义对象,其中包含我需要输入预制件的信息。

我读过某个地方,在预制件上乱搞构造器是一个坏主意。那么最好通过预制件上的方法调用传递intitiatlization信息吗?

即:为预制件制作一个脚本,接受我的自定义对象进行配置?一种最佳实践问题。

1 个答案:

答案 0 :(得分:0)

我将如何做到这一点。基本上,预制件需要一个参考(不一定是单独的脚本)到另一个预制件,需要额外的数据。

虽然问题是:为什么这些数据不能出现在预制件本身?

如果答案是"因为数据是全球性的并且有许多预制件"这个问题的一个很好的解决方案是ScriptableObject,它充当全局数据存储对象。脚本化对象具有脚本和检查器视图,就像其他游戏对象一样,您可以将脚本化对象的引用分配给预制件,然后预制件可以引用全局数据。

通常,ScriptableObject用于"原始数据"甚至是一个轻量级的游戏数据库。

创建ScriptableObject的脚本(有很多例子): http://wiki.unity3d.com/index.php/CreateScriptableObjectAsset

这篇文章用一个用例和代码示例解释了SO: http://buchhofer.com/2010/10/unity-toying-with-scriptable-objects/