В настоящее время у меня есть код, который порождает несколько экземпляров меша Сферы в форме куба (порождая одну Сферу на вершину меша куба), например:
public CubeMesh CubeMesh;
mesh = CubeMesh.GetComponent<MeshFilter>().mesh;
public GameObject spherePrefab;
public GameObject[] spheres;
public List<TransformData> matrices1 = new List<TransformData>();
Vector3[] matrices1pos = new Vector3[24]; //cube has 24 vertices
spheres = new GameObject[mesh.vertexCount];
for (int i = 0; i < mesh.vertexCount; i++)
{
matrices1pos[i] = matrices1[i].position;
spheres[i] = Instantiate(spherePrefab, matrices1[i].position, Quaternion.identity);
}
Так что это работает, чтобы иметькуча сферных экземпляров, создающих форму куба, когда вы нажимаете на игру.
То, что я сейчас пытаюсь сделать, это переместить сферы, которые составляют эту форму куба, чтобы эта форма «куба» могла следоватьигрок, не разрушая фигуру.
Когда я манипулирую данными Transform объекта GameObject, на котором запущен вышеуказанный скрипт, экземпляры сферы вообще не меняют свою позицию.Им все равно, какова позиция GameObject.
Я также пытался связать его с другим объектом и перемещать позицию Родителя, но позиции экземпляра сферы также не заботятся о позиции родителя.
Каков будет правильный подход для перемещения формы «Куба» без изменения фактических положений сфер относительно друг друга?Выглядит это так (https://i.imgur.com/aGi4cOS.png), для справки.
Редактировать:
сделать эту строку вместо:
spheres[i] = Instantiate(spherePrefab, matrices1[i].position, Quaternion.identity, transform);
позволяет мнеуправлять вращением и масштабом экземпляров сферы, но не позицией
Edit2: Решено! см. ответ ниже