Autor Wątek: Animacja sprite'ów w GUITexturze  (Przeczytany 1904 razy)

Offline Arthes

  • Użytkownik
    • Gromaniak

# Grudzień 15, 2011, 20:03:01
Witam.
Tworzę prostego oldschoolowego shootera w Unity, i mam problemik - w jaki sposób, wydajnie, tworzyć animację spritów (strzelanie, itd) ? Mam już gotowe klatki animacji, tylko nie mam sposobu na animację... Zwykłe podmienianie przy pomocy guiTexture.texture = xxx oraz yield WaitForSeconds(x) jest niewydajne, i często zacina się animacja. Jakby co, gra jest tworzona pod webplugina.

Z góry dzięki za pomoc, pozdrawiam.

Offline Mr. Spam

  • Miłośnik przetworów mięsnych

Offline Liosan

  • Redaktor

# Grudzień 15, 2011, 20:18:44
Przychodzą mi do głowy coroutines... ale pewnie jest lepszy sposób :)

Liosan

Offline Arthes

  • Użytkownik
    • Gromaniak

# Grudzień 15, 2011, 20:21:06
No właśnie teraz robię to w taki sposób, i często gra potrafi zwolnić, lub animacja się zacina :/

Offline Xirdus

  • Redaktor

# Grudzień 17, 2011, 21:50:36
A nie możesz zrobić atlasu tekstur i operować na texcoordach?

Offline Arthes

  • Użytkownik
    • Gromaniak

# Grudzień 18, 2011, 10:25:15
Mógłbym, ale animować to na takiej zasadzie jak teraz, używając yifield WaitForSeconds(x) ?

Offline sztacheta28

  • Użytkownik
    • Wsparcie dla Unity 3d po polsku

# Grudzień 18, 2011, 11:42:13
GUITexture używa się raczej do grafik statycznych, bo jego zastosowaniem jest budowa menu gry, stąd ta słaba wydajność.
Jeśli robisz grę 2D to użyj Plane z nałożoną na niego teksturą i ustaw przed kamerą.
Tu masz przykładowy kod animacji z użyciem Time.time:
http://forum.unity3d.com/threads/38177-sprite-animation?p=506227&viewfull=1#post506227

Drugą metodą na animację jest użycie MovieTexture. Użycie jej tak żeby działała z kanałem alpha jest delikatnie mówiąc skomplikowane, więc raczej nie polecam, bo można się zniechęcić:
http://answers.unity3d.com/questions/9102/how-do-i-use-movie-texture-with-alpha-channel.html
http://answers.unity3d.com/questions/9750/movie-texture-blending.html