在我的项目中,我经常会在播放时想要实例化多个内容,这些内容非常相似,只是在例如图像组件的精灵。
我的问题是,
是否更好a)创建许多预制件,这些预制件大多相同,只是图像组件与
不同b)创建一个预制件和Resources.Load()所需的子画面并将其设置为预制件实例的图像组件,甚至可能
c)为所需的精灵创建公共引用,并结合“一个预制”方法,但不要做Resources.Load()。
对我来说,这对于图像组件来说非常有趣,但对于其他情况也很有用。对于哪个选项更好,或者它取决于组件是否有一个明确的答案,并且可能有一个选项更好的性能,而另一个选项可以节省更多空间?
干杯。
答案 0 :(得分:1)
通常我认为最好的方法是创建一个预制件,然后为其提供一个公共组件或脚本,可以接收消息并更改私有组件以控制您想要更改的方面。在您描述的实例中,您只想更改图像组件,可以在实例化预制件时更改该组件。
这个问题变成了一个设计问题:你是否宁愿在实例化后从预制件中实例化游戏对象的脚本中更改属性(在本例中为图像组件)?或者向预制件上的脚本发送消息,然后对该消息作出反应,相应地设置其属性?
您可以看到关于实例化here的相当全面和多样化的讨论。
我认为通常的共识是你不希望addComponent
大量的预制件“专门化”它们而你不想一次性(在一个框架内)实例化大量的预制件,除非它在start()
。除此之外,我的建议是使用一个预制件,给它一个脚本,让你设置你想要设置的属性,并相应地进行。