Как изменить местоположение порожденных экземпляров, не разрушая позиции экземпляров относительно друг друга? - PullRequest
0 голосов
/ 24 июня 2019

В настоящее время у меня есть код, который порождает несколько экземпляров меша Сферы в форме куба (порождая одну Сферу на вершину меша куба), например:

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: Решено! см. ответ ниже

1 Ответ

0 голосов
/ 24 июня 2019

Я понял это! Мне нужно было использовать local Position. Спасибо! =]

spheres[i].transform.SetParent(GO2.transform);
spheres[i].transform.localPosition = Vector3.Lerp(matrices1pos[i], matrices2[i].position, t);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...