Licznik GUI gry 2d

game-design
projektowanie-gier
gamedev

#1

Witam. Próbuję rozwiązać problem z licznikiem zbierania monet w mojej grze 2d podsyłam pare screen shotów może ktoś miał podobny problem lub chciałby mi pomóc :smiley:

Z góry dziękuję za poświecony czas :smiley:


#2

W skrypcie KontrolerLicznika ustaw pole na
public Text counterView;
wtedy w Inspector pojawi się to pole, i będziesz mógł ustawić jego referencje na obiekt Text, który masz pod obiektem Canvas w Hierarchy.


#3

WItam. Po wpisaniu Private przed Text counterView wyskoczyły nastepujące błędy


#4

Dodam jeszcze iż Canvas > Text wygląda następująco


#5

[SerializeField] Text counterView


#6

Tfu, miało być public nie private, sorry.
Albo [SerializeField] private Text counterView; - tak też jest ok.


#7

Teraz problem został rozwiązany, dzięki wielkie :smiley:


#8

Drobne uwagi

  1. Jak już masz być konsekwentny to używaj jednego języka do nazwania klas a nie dwóch
  2. Imo przeciąganie obiektów w edytorze Unity by dostarczyć zależności (tutaj obiekt typu Text), jest trochę upierdliwe. Unity czasem kompletnie od czapy lubi gubić wszelkie powiązane referencje szczególnie przy zmianie nazwy takiego pola/zmiennej.
  3. Samo zbieranie monet powinno mieć raczej formę zdarzeniową czyli że jeżeli coś wejdzie w trigger monety to wtedy odpala zdarzenie. Ma to ten plus że wiele innych klas może wtedy zareagować.
  4. Samo sprawdzanie czy się “wdepnęło” w monetę lepiej sprawdzać w inny sposób niż porównywać GameObject.name. Mozna na przykład użyć layers
    https://docs.unity3d.com/Manual/Layers.html
    https://docs.unity3d.com/Manual/LayerBasedCollision.html