首页 > 解决方案 > 以一种所有人都表现相同的方式克隆对象

问题描述

是否可以在 Unity 中以所有克隆对象的行为相同的方式实例化预制件?

例如,如果我旋转一个,所有副​​本必须旋转相同,如果我改变颜色,所有副本都必须得到相同的颜色

我确实知道如何迭代数组并将操作应用于每个数组,但我想知道是否有更简单或更自动化的方法

谢谢!!

标签: c#unity3dcloneinstantiation

解决方案


正如您所提到的,实现您想要实现的目标的一个好方法是使用管理器来处理逻辑,然后将响应操作发送到它正在管理的所有对象。如果您不想使用管理器,您可以拥有一些处理移动、旋转、缩放等逻辑的对象的原始实例以及所有其他克隆的子对象。

每当原始对象更改时,原始对象的所有子代克隆都会移动、旋转和缩放。需要注意的是,实例化时的克隆将是相对于父对象的位置、旋转和缩放。您可以通过实例化对象的旋转来确保旋转相同Quaternion.Identity。如果您愿意,可以对比例和位置采取类似的方法。至于颜色,只需设置一个材质并编辑sharedmaterial它会将对象的所有实例的颜色设置为您设置的任何颜色。

我不相信所有这些更改都适用于所有克隆的内置方式。实现一个管理器来保持一个结构来保存和更新每个克隆会更干净。如果您希望克隆模仿的只是变换数据和颜色,则可以按照我提到的方式完成。但是,并非所有内容都可以通过这种方式进行更新,因此您在没有经理的情况下可以做的事情受到限制。


推荐阅读