Pobranie wartości zmiennej

Pobranie wartości zmiennej
CrystianoTV
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 3
0

Witam
Od pewnego czasu uczę się unity.
Podczas robienia gry napotkałem pewien problem.
Chciałem dodać do gry możliwość customizacji bohatera w postaci nakrycia głowy.
W jednym skrypcie napisałem metody ,które aktywują się po naciśnięciu przycisku w menu customizacji.
Ustawiają one zmienną zapisującą numer nakrycia na dany numer.
Potrzebuję zrobić skrypt który sprawdza , jaką ta zmienna ma aktualnie wartość i ustawia dane nakrycie zgodnie z wartością zmiennej.
Niestety nie wiem jak użyć tej zmiennej w innym skrypcie.
Proszę o pomoc

MI
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 85
0

Czy ta zmienna jest globalna? Albo czy jest zdefiniowana w klasie Bohater tak, żeby inne metody miały do niej dostęp?

CrystianoTV
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 3
0

Zmienna jest publiczna.
I zmiennej tej chcę użyć w innej klasie i innym pliku.

MI
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 85
0

Nie wiem jak to jest w C# a na nim operuje Unity, ale w C++ i C wystarczy, że w innych plikach zadeklarujesz: extern typ_zmiennej nazwa_zmiennej; np. extern char mySign;
I wtedy możesz go użyć.

Ktos
  • Rejestracja: dni
  • Ostatnio: dni
1

Możesz oznaczyć swoją zmienną klasy jako public static i wtedy dostajesz się po niej po NazwaSkryptu.NazwaPola. Na przykład:

Kopiuj
public class NazwaSkryptu : MonoBehaviour
{
    public static int NazwaPola;
}
CrystianoTV
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 3
0

Dziękuję za odpowiedź.

Ktos
  • Rejestracja: dni
  • Ostatnio: dni
0

Alternatywnie też (i chyba to trochę bardziej "poprawne") jest zrobić coś takiego, że jeśli twój skrypt przypisany jest np. do obiektu Player, to w innym skrypcie bierzesz sobie tego playera (np. ustawiasz w inspectorze) i robisz coś w stylu:

Kopiuj
customScript = player.GetComponent<MojSkryptDoCzegos>().PublicznePoleSkryptuMojego;

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.