Unity3d 从Unity中的产卵器将游戏对象连接到窗格?

Unity3d 从Unity中的产卵器将游戏对象连接到窗格?,unity3d,Unity3d,我有一个窗格,上面有一个立方体,上面有一个产卵器,在玩游戏时会产卵出立方体。窗格可以旋转,立方体应该粘在窗格上并向前移动。 我被卡住的部分是让来自产卵器的立方体粘在一起 我设法使原来的立方体坚持使用 Object1.transform.parent = Object2.transform; 我还使用相同的方法使产卵器粘在窗格上 然而,当我使用它的时候,第一个立方体会很好的粘住,并且来自产卵器的立方体不会出现。根据我的研究,这可能是一个缩放问题。此外,生成的多维数据集确实以“多维数据集(克隆)”

我有一个窗格,上面有一个立方体,上面有一个产卵器,在玩游戏时会产卵出立方体。窗格可以旋转,立方体应该粘在窗格上并向前移动。 我被卡住的部分是让来自产卵器的立方体粘在一起

我设法使原来的立方体坚持使用

Object1.transform.parent = Object2.transform;
我还使用相同的方法使产卵器粘在窗格上

然而,当我使用它的时候,第一个立方体会很好的粘住,并且来自产卵器的立方体不会出现。根据我的研究,这可能是一个缩放问题。此外,生成的多维数据集确实以“多维数据集(克隆)”的形式显示在多维数据集下,但其比例与原始多维数据集不同。我还注意到,当我按play时,原始立方体的比例发生了变化。它从-(10,10,10)到浮点数

我尝试的一个解决方案是设置比例,但当我这样做时,对象根本就不会粘在窗格上

但是它们确实正常繁殖。使用这种方法

 void Update () {
     Vector3 scale = new Vector3(10, 10, 10);
     Object1.transform.localScale = scale;
     Object1.transform.parent = Object2.transform;
}

如果有人有任何想法,我们将不胜感激。

在这种情况下,通常最好先为对象设置父对象,然后处理局部变换。局部变换,如
transform.localPosition
transform.localRotation
transform.localScale
处理对象相对于父对象的局部值

结尾有一段描述得很好:

请注意,将应用父变换的世界旋转和缩放 在计算世界位置时,将移动到本地位置。这意味着 在Transform.position中的1个单位始终是1个单位,而在Transform.position中的1个单位 Transform.localPosition将按所有祖先的比例进行缩放


只是澄清一下,您是否知道可以设置对象的父对象?在您的情况下,听起来您希望将生成的多维数据集作为“窗格”的父对象?一个对象是另一个对象的子对象,任何变换(位置、旋转或缩放)都将应用于子对象。是的,我将立方体作为平面的子对象,这对原始立方体有效,并且它们之间的旋转相同。然而,当我这样做的时候,产卵器停止工作,它打算下一个产卵的立方体的大小很奇怪。刻度上显示的数字是相同的,但在视觉上它们与原始立方体完全不同。我弄乱了比例,但我觉得当我将立方体作为子对象时,生成的对象在与平面链接时正在使用另一个比例。嗯,如果我理解正确,可能是在你将新实例化的对象作为平面的父对象之后,重新调整
cube.transform.localPosition
cube.transform.localRotation
cube.transform.localScale
。作为对象的父对象不会修改世界空间变换值,但局部变换值看起来会有点偏离。@Milan Egon Votrubec非常感谢。这就是我在将立方体制作成子立方体前后设置localPosition和Rotation时弄糟的情况,我将把它作为答案。很高兴听到你已经开始工作了。