我将球体实例化为GameObject的子代。我希望这些球体跟随GameObject的位置。
问题在于,这些球体顽固地停留在它们生成的位置,并且在运行时Inspector中任何“变换”位置更改时都拒绝更改其位置。
spheres = new GameObject[mesh.vertexCount]; //create gameobject array, size of mesh vertex count
for (int i = 0; i < mesh.vertexCount; i++)
{
matrices1pos[i] = matrices1[i].position;
spheres[i] = Instantiate(spherePrefab, matrices1[i].position, Quaternion.identity);
spheres[i].transform.SetParent(GO2.transform);
}
我什至尝试添加代码:
spheres[i].transform.localPosition = Vector3.zero;
但这不会使球体也响应父级的位置更改。
顺便说一句,“球体”的生成位置是脚本在其上运行的GameObject(称为MeshChanger
)的位置。在运行时更改MeshChanger
转换的位置也无效。
edit:解决!请参阅下面的答案
答案 0 :(得分:0)
我知道了。我需要使用本地位置。 =]
spheres[i].transform.SetParent(GO2.transform);
spheres[i].transform.localPosition = Vector3.Lerp(matrices1pos[i], matrices2[i].position, t);