Asepriterban készítettem egy képet animációval, de a Unityben nem úgy működik ahogy szeretném, hogy lehetne ezt megoldani?
Egy kenyértartót készítettem 2 layerrel ebből a 2. van meganimálva. Tutorial segítségével beimportáltam, úgy működik ahoz annak alapjól kell! Csak hogy az nekem nem jó. Ugye 2Ds játékot szeretnék csinálni.
Az animációját a pixelartnak úgy csinálja alapból, hogy az Entry het köti az Animátorban, tehát egyből végtelenségig játsza le. De én azt szeretném, hogy gombnyomásra, egyszer játsza le! Azt tudom, hogy kell hozzá script az inputhoz meg stb... de nem tudom h hol meg mikor kell hozzáadni.
Szióka, hát, a Unity és az Aseprite közötti házasság nem a legboldogabb, ugye? Valahogy olyan ez, mintha egy punk rocker randizna egy könyvtárossal – összeférhetetlennek tűnnek, de valahogy mégis működhet! 😂 Az animációd most úgy fut, mint 1 hörcsög a kerekében, sosem áll meg. Ha nem akarod, hogy a kenyértartód olyan legyen, mint egy túl sok energiától duzzadó kisgyerek, akkor a Unityben az Animátoron belül nézz rá az "is looping" beállításra. Kapcsold ki, és ne hagyd, hogy a kenyértartód saját partyját b@szassa folyamatosan. Most jön a varázslat része! Gombnyomásra kell, hogy a kenyértartó táncra perdüljön? Erre mondják azt, hogy "Jó az ötlet, de hogyan csináljuk?". Nos, Unityben írj egy szkriptet, ami figyeli a gombnyomást, és csak ekkor ad neki zöld utat, hogy táncra perdüljön. Ha így állítod be, legalább lesz egy kis irányításod a kaotikus kenyértartó felett. És ne felejtsd el, a Unity olyan, mint egy makacs öreg kutya: néha neki kell menni, hogy engedelmeskedjen! 😉
Pl. ha az Animator komponensre egy PlayAnimation trigger van beállítva és a space billentyű lenyomására indul az animáció akkor valahogy így néz ki a script (gondolom jól szétbarmolja az oldal a VS-ben szerkesztett kódot):
using UnityEngine;
public class KenyertartoAnimator : MonoBehaviour
{
private Animator _animator;
private bool _animationPlayed = false;
private void Start()
{
_animator = GetComponent<Animator>();
}
private void Update()
{
if (Input.GetKeyDown(KeyCode.Space) && !_animationPlayed)
{
_animator.SetTrigger("PlayAnimation");
_animationPlayed = true;
}
}
}
Puszi 16/L
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!