Pobranie wartości zmiennej

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

0

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

0

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

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ć.

1

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

public class NazwaSkryptu : MonoBehaviour
{
    public static int NazwaPola;
}
0

Dziękuję za odpowiedź.

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:

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

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