У меня дилемма. Я пытаюсь сделать что-то вроде: у меня есть 3 кнопки, я нажимаю на одну, она увеличивается, я нажимаю на другую, она увеличивается, а предыдущая возвращается к исходному размеру.
private void PigeonholesHasClicked(GameObject target, MouseEventType type)
{
if (type == MouseEventType.CLICK)
{
TargetIndex = System.Array.IndexOf(Pigeonholes, target);
PigeonholesTrasnform();
}
}
Vector3 mPosition;
int lastIndex = 0;
public float mIndex;
private void PigeonholesTrasnform()
{
mPosition = new Vector3(Pigeonholes[TargetIndex].transform.position.x - mIndex, Pigeonholes[TargetIndex].transform.position.y, 0f);
Pigeonholes[TargetIndex].transform.DOMove(mPosition, 0.5f);
Pigeonholes[TargetIndex].GetComponent<BoxCollider2D>().enabled = false;
if (TargetIndex != lastIndex)
{
mPosition = new Vector3(Pigeonholes[lastIndex].transform.position.x + mIndex, Pigeonholes[lastIndex].transform.position.y, 0f);
Pigeonholes[lastIndex].transform.DOMove(mPosition, 0.5f);
for (int i = 0; i < Pigeonholes.Length; i++)
{
if (i != TargetIndex)
Pigeonholes[i].GetComponent<BoxCollider2D>().enabled = true;
}
}
lastIndex = TargetIndex;
}
Проблема в том, что если я нажму кнопку 1 или 2, кнопка 0 переместится вправо на 0,4. Если я сначала начну набирать 0, а затем нажать 1 или 2, то все пойдет хорошо. Идея состоит в том, что lastIndex равен 0 изначально, если я сделаю это -1, это выдаст мне ошибку. HELP !!!