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
Pobranie wartości zmiennej
- Rejestracja: dni
- Ostatnio: dni
- Postów: 3
- Rejestracja: dni
- Ostatnio: dni
- Postów: 85
Czy ta zmienna jest globalna? Albo czy jest zdefiniowana w klasie Bohater tak, żeby inne metody miały do niej dostęp?
- Rejestracja: dni
- Ostatnio: dni
- Postów: 3
Zmienna jest publiczna.
I zmiennej tej chcę użyć w innej klasie i innym pliku.
- Rejestracja: dni
- Ostatnio: dni
- Postów: 85
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ć.
- Rejestracja: dni
- Ostatnio: dni
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;
}
- Rejestracja: dni
- Ostatnio: dni
- Postów: 3
Dziękuję za odpowiedź.
- Rejestracja: dni
- Ostatnio: dni
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;