У меня есть шесть или более спрайтов, которые скрыты, альфа установлена на 0. Я перемещаю спрайтов в начальную позицию в верхней части экрана, прежде чем их показывать.Оказавшись в новой позиции, я показываю их и возвращаю их в исходное положение.
Моя проблема в том, что спрайты отображаются всего за пару миллисекунд, прежде чем они перемещаются в начальную точку.Несмотря на то, что порядок кода сначала «переместить», а затем «показать».
Я пытался найти обратный вызов с перемещением позиции, чтобы определить, когда изменение позиции завершено, прежде чем показывать, но я не могу этого сделать.
void Start() {
int i = 0;
foreach (Transform point in drawingPoints.transform)
{
//Record points original postion
Vector3 currentPosition = point.transform.position;
//Move to new starting position
point.transform.position = stepOne.transform.position;
//Now show point
var color = point.gameObject.GetComponent<SpriteRenderer>().color;
color.a = 1;
point.gameObject.GetComponent<SpriteRenderer>().color = color;
//Move point back to original postion
point.transform.DOMove(currentPosition, 1f).SetDelay(UnityEngine.Random.Range(0f, 0.3f));
i += 1;
}
}