Unity NullReferenceException

0

Witam
Realizuję prototyp prostej gry z książki "Introduction to game design prototyping and development" i mam problem z naliczaniem punktów. Po wywołaniu funkcji OnCollisionEnter i sprawdzeniu tagu prefabrykat usuwa się ale punkty nie naliczają się. W prawidłowo działającym kodzie po przypisaniu do scoreGT komponentu text po każdym wywołaniu collision i if powinna zostać przypisana do zmiennej score przekonwertowana na int zmienna scoreGT, powinny zostać dodane punkty a następnie powinna znowu nastąpić konwersja na string. Kod pochodzi z książki.

public Text scoreGT;

void start()
    {
        GameObject scoreGO = GameObject.Find("ScoreCounter");
        scoreGT = scoreGO.GetComponent<Text>();
        scoreGT.text = "0";
    }

 void OnCollisionEnter(Collision coll)
    {
        GameObject collideWith = coll.gameObject;
        if (collideWith.tag == "Apple")
        {
            Destroy(collideWith);

            int score = int.Parse(scoreGT.text);
            score += 100;
            scoreGT.text = score.ToString();

        }
    }

W konsoli Unity pojawia się błąd NullReferenceExpection w linii 17 zawierającej przypisanie do zmiennej score przekonwertowanej zmiennej scoreGT i z tego co zrozumiałem próbuje odnieść się do nieistniejącego elementu ale nie wiem jak. Problemem prawie na pewno nie jest Unity, wszystkie potrzebne UI istnieją.

0

Nie znam się na Unity, ale czy na pewno tutaj odnajduje Ci to co potrzeba? czy nazwa ScoreCounter jest nadal aktualna?

GameObject scoreGO = GameObject.Find("ScoreCounter");
scoreGT = scoreGO.GetComponent<Text>();
0

@WeiXiao: Najprawdopodobniej, istnieje jako GameObject element UI
screenshot-20201121202726.png

0

zmień:

void start()

na:

void Start()
0

@Boski: Faktycznie, Dziękuję ci, nigdy bym tego nie zauważył, teraz sens ma dlaczego próbowałem odnieść się do nieistniejącej zmiennej, bo void start() nigdy się nie wykonał, Dziękuję raz jeszcze.

1 użytkowników online, w tym zalogowanych: 0, gości: 1