Wpis z mikrobloga

Cześć, robię swój pierwszy projekt w Unity i mam problem z animacją w Unity 2D. Mam klipy animacyjne „MenuStart” i „MenuEnd”. „MenuEnd” działa poprawnie i animacja rozpoczyna się bez zarzutów, ale „MenuStart” nie włącza się i nie wiem, co może być przyczyną. Zaznaczam, że w oknie "Animation" na dole klip ten działa prawidłowo na podglądzie. Dorzucam pare screenów z kodu i okna Animator. Będę bardzo wdzięczny za jakąkolwiek pomoc, pozdrawiam. #unity #programowanie #tworzeniegier #pomocy #pytanie
Koziom - Cześć, robię swój pierwszy projekt w Unity i mam problem z animacją w Unity ...

źródło: Kod

Pobierz
  • 11
  • Odpowiedz
@Koziom: jesteś początkujący to nie będę się znęcał nad kodem (dużo tam do poprawy) ale uważam że dobrze jest się od razu uczyć dobrych praktyk nawet jeśli zajmie to trochę dłużej - mianowicie wcale nie powinieneś używać animatora i klipów do animowania UI. Zaimportuj sobie DoTween (darmowy asset) i animuj UI z kodu.
Jeśli już bardzo chcesz używać animatora to sprawdź jaki masz w inspektorze animatora ustawiony update mode - jeśli
  • Odpowiedz
  • 0
@buhubuhu: Jeśli chodzi o kod to zgaduje, że chodzi Ci o te 3 if'y. W przyszłości uproszczę sobie ten kod, żeby to wyglądało bardziej przejrzyście. Natomiast jak dałem Unscaled Time w Animatorze to animacja niby działa, ale tak nie do końca, w sensie pojawia się i znika, tak mogę to mniej więcej wytłumaczyć.
  • Odpowiedz
@Koziom: a co do kodu to mogę Ci powiedzieć że tak:
- nie używaj starego input systemu, przysiądź i ogarnij nowy input system
- nie używaj stringów we flow - nigdy. Zrób sobie zmienną readonly, przypisz stringa i używaj tej zmiennej. Uwierz mi że przy bardziej skomplikowanym kodzie uchroni Cię to przed wieloma nieprzespanymi nocami.
- nie twórz new WaitForSeconds za każdym razem w corutynie tylko na starcie stwórz go sobie
  • Odpowiedz
@Koziom: musisz sobie otworzyć animator obok i patrzeć co się dzieje. Wygląda na to że Ty tam masz zwykły fade in/out - serio zastanów się nad ogarnięciem dotweena bo to jest jedna linijka kodu żeby takie coś zrobic wtedy. :)
  • Odpowiedz