Булева переменная сбрасывается в единицу - PullRequest
0 голосов
/ 15 января 2019

Проще говоря, каждый раз вокруг моего цикла обновления переменная '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);
    }
}

1 Ответ

0 голосов
/ 15 января 2019

Вы присваиваете значение в выражении if:

if (direction = true)

Должно быть (отредактировано, чтобы применить предложение комментатора. Рекомендуется проверять логические значения без оператора ==)

if (direction)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...