Сделать 2 метода с одним (тот же параметр) - PullRequest
0 голосов
/ 13 июля 2020

Я думаю, что это новичок, но мне все еще нужно найти способ решить эту проблему.

Я хочу сделать bool logi c ссылкой на логар bool. invisiblearrow(), я применил кнопку переключения в мировом пространстве Unity, поэтому я хочу передать логар в logi c bool.(same bool).

private void invisiblearrow(bool logar) {
    if (logar == false) {
        GameObject[] arrow = GameObject.FindGameObjectsWithTag("arrow");
        foreach(GameObject ar in arrow) {
            ar.GetComponent < Renderer > ().enabled = logar;
            Debug.Log(logar);
        }
    }
    if (logar == true) {
        GameObject[] arrow = GameObject.FindGameObjectsWithTag("arrow");
        foreach(GameObject ar in arrow) {
            ar.GetComponent < Renderer > ().enabled = logar;
            Debug.Log(logar);
        }
    }

}

public void arrow(float[, ] arrowdata, bool logic) {
    for (int x = 0; x < arrowdata.GetLength(0); x++) {
        for (int y = 0; y < arrowdata.GetLength(1); y++) {
            if (grid[x, y] == 1) {

                if (arrowdata[x, y] == 5) {
                    GameObject referenceArrow = Instantiate(Resources.Load("down")) as GameObject;
                    float posY = shipvalue.transform.position.y - 9f;
                    referenceArrow.transform.position = new Vector3(shipvalue.transform.position.x, posY);
                    referenceArrow.GetComponent < Renderer > ().enabled = logic;
                }
                if (arrowdata[x, y] == 4) {
                    GameObject referenceArrow = Instantiate(Resources.Load("top left")) as GameObject;
                    float posY = shipvalue.transform.position.y - 9f;
                    referenceArrow.transform.position = new Vector3(shipvalue.transform.position.x, posY);
                    referenceArrow.GetComponent < Renderer > ().enabled = logic;
                }
                if (arrowdata[x, y] == 3) {
                    GameObject referenceArrow = Instantiate(Resources.Load("top right")) as GameObject;
                    float posY = shipvalue.transform.position.y - 9f;
                    referenceArrow.transform.position = new Vector3(shipvalue.transform.position.x, posY);
                    referenceArrow.GetComponent < Renderer > ().enabled = logic;
                }
            }
        }
    }

}

1 Ответ

1 голос
/ 13 июля 2020

Вы не можете, потому что оба bool являются локальными bool (только на уровне функции), но вы можете: объявить частный bool за пределами двух функций (глобальных) и в конце функции invisiblearrow(bool logar) назначить logar bool в новый частный логический тип (новый bool = logar), тогда вы можете получить доступ к новому частному логическому типу в функции arrow(float[,] arrowdata, bool logic).

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