@Zimaell

От чего могут сбрасываться значения переменных?

Выбросил из скрипта все лишнее и оставил только дебаг и вот что увидел

spoiler
public class Cell : MonoBehaviour {
  public int X, Y;
  public Move = false;
  void OnMouseDown(){
    Move = true;
    }
void Update(){
    if(Move) Debug.Log(X + "," + Y);
    }
}
#-----------------------------------------------------
public class Board : MonoBehaviour {
  public Dictionary<(int, int), GameObject> Cells = new Dictionary<(int, int), GameObject>();
  void Start(){
    CreateBoard();
    }

  void CreateBoard(){
    for(int y = 0; y < 5; y++){
      for(int x = 0; x < 5; x++){
        GameObject PrefabResources = Resources.Load("Prefabs/test", typeof(GameObject)) as GameObject;
        Cells[(x, y)] = Instantiate(PrefabResources, new Vector3(x, y, 0), Quaternion.identity) as GameObject;
        Cells[(x, y)].AddComponent<Cell>();
        Cells[(x, y)].GetComponent<Cell>().X = x;
        Cells[(x, y)].GetComponent<Cell>().Y = y;
        }
      }
    }
}

И в итоге когда я нажму на какой-то объект я получаю следующий дебаг к примеру

3,5
0,0
3,5
0,0
3,5
0,0
............

но ведь эти переменные не должны изменяться, в данном случае должно выводиться 3,5 всегда, в Cell нигде этим переменным 0 не присваивается, объекты выстраиваются один раз и один раз им присваиваются значения, от чего такое может быть? (на префабах ничего не прикреплено изначально)
  • Вопрос задан
  • 63 просмотра
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы