Pracuję w Unity i odkrywam, że animator nie działa zgodnie z tym, co próbuję zrobić w mojej grze 2D. Chcę zbudować konkretną animację przy użyciu arkuszy sprite i móc ponownie używać tej samej animacji z innymi sprite'ami o tym samym rozmiarze i wymiarach według komórek. Po kilku badaniach stwierdzam, że jest to niemożliwe.
Zamiast tego próbuję stworzyć własny skrypt animacji, ale nie rozumiem, jak powiedzieć Unity, aby narysowała tylko część duszka. Coś jak w XNA, w którym można renderować tylko określony prostokąt duszka przy użyciu współrzędnych początkowych i końcowych.
Jak ręcznie narysować część arkusza duszków?
Odpowiedzi:
Myślę, że może istnieć prostsze podejście, w którym możesz to zrobić i nadal używać Unity Mecanim do animacji.
Kroki:-
1) Możesz programowo przypisać sprity 2D tekstury z obrazu, a ponieważ jest to siatka, nie będzie to trudne. W poniższej odpowiedzi użytkownik utworzył własny fragmentator duszków i zapisał go w katalogu (opcjonalnie w innym przypadku po prostu zapisz go w zmiennej). Nie potrzebujesz całego kodu, po prostu sprawdź funkcję GetSprites (), a wpadniesz na pomysł :)
http://answers.unity3d.com/questions/576799/coding-my-own-auto-slicer-getting-islands-of-pixel.html
2) Gdy będziesz w stanie to zrobić, utrzymaj zestaw duszków, które otrzymałeś od kroku 1.
3) Teraz musisz utworzyć plik animacji tych duszków, które można podłączyć do mecanim. W tym celu potrzebujesz funkcji Set Curve Unity (sprawdź link podany poniżej). Gdy klip jest już gotowy, możesz zapisać go do użycia w przyszłości, czy po prostu umieścić go w zmiennej tylko dla bieżącej instancji gry.
http://docs.unity3d.com/ScriptReference/AnimationClip.SetCurve.html
Mam nadzieję, że to rozwiąże twoje wątpliwości :)
źródło