Система монет в единстве - PullRequest
0 голосов
/ 27 апреля 2020

Я сделал систему монет (в Unity C#) в главном меню, чтобы я мог покупать предметы для них. Я хотел бы собрать монеты на игровой сцене и добавить к этому счету то, что я вижу в своем главном меню и на своей игровой сцене.

В GameManager:

public Text coinText;

PlayerController Script:

    gameManagerScript.coinText.text = "Currency : " + MainGameManager.Instance.currency.ToString();
    gameManagerScript = GameObject.Find("GameManager").GetComponent<GameManager>();

Когда игрок поднимает монету: `

private void OnTriggerEnter(Collider other)
    {
        Destroy(other.gameObject);
        MainGameManager.Instance.currency += 1;
        gameManagerScript.coinText.text = "Currency : " + MainGameManager.Instance.currency.ToString();
    }

в иерархии, я создал UI -> Text и упал в GameManager.

То, что я вижу на игровой сцене: Валюта: но я не вижу, сколько у меня есть и не прибавляет к валюте.

Ответы [ 2 ]

1 голос
/ 27 апреля 2020

Вы можете использовать поля c. В вашем GameManager:

public static int coins;

В проигрывателе:

GameManager.coins += val

Вы также можете получить доступ к значению, используя GameManager.coins в скрипте MainMenu. Примечание. Если вы пытаетесь сделать эти данные постоянными для разных прогонов, вы можете использовать класс PlayerPrefs: https://docs.unity3d.com/ScriptReference/PlayerPrefs.html

1 голос
/ 27 апреля 2020

В сценарии PlayerController вы определяете gameManagerScript после попытки установить текст. Ваш пользовательский интерфейс может иметь неправильный размер (не подходит для всего текста). Если ни один из них не является ответом, попробуйте отладку с помощью print(string) или Debug.log(string) в консоли вместо пользовательского интерфейса

...