Проще говоря, каждый раз вокруг моего цикла обновления переменная 'direction' начинается с true, пока я не изменю ее на false. Но нет ничего, что могло бы изменить его на истину.
Ниже в коде вы можете увидеть мои Debug.Logs, чтобы проверить его значение, когда оператор if с входами в систему true, первый журнал всегда выводит true, а второй выводит false. Я не уверен, почему он устанавливается в значение true между циклами. Я был глуп или есть проблема с тем, как я это делаю?
Для получения дополнительной информации, переменная управляет горизонтальным направлением движения моего игрового объекта. При значении true объект будет перемещаться по положительной оси x и наоборот для false.
private bool direction = true;
public int minX;
public int maxX;
public int changeScene;
// Use this for initialization
void Awake() {
instance = this;
}
void Start () {
reference = gameObject;
StartCoroutine (WaitThenDestroy ());
}
// Update is called once per frame
void Update () {
this.transform.Translate (new Vector3 (0, speed * movement.gameSpeed, 0));
moveHorizontal();
}
private void moveHorizontal() {
if (direction = true) {
this.transform.Translate (new Vector3 (speed * movement.gameSpeed, 0, 0));
} else {
this.transform.Translate (new Vector3 (-speed * movement.gameSpeed, 0, 0));
}
// Change horizontal direction
Vector3 p = this.transform.position;
Debug.Log (p.x);
if (p.x > maxX) {
direction = true;
Debug.Log ("WHOOP");
} else if (p.x < minX) {
Debug.Log (direction);
direction = false;
Debug.Log (direction);
}
}