2015-04-15 2 views
0

Я хочу получить спрайт, чтобы воспроизвести анимацию капли жидкости, падающей каждый раз, когда ее нажимают, однако анимация воспроизводится только в первый раз, когда я нажимаю на нее, и я понятия не имею, почему.Как заставить анимацию играть несколько раз в Unity?

Вот код, который используется на спрайта:

public class PipetteScript : MonoBehaviour { 

public Animator pipetteAnim; 
public BoxCollider2D pipetteMove; 
public IndicatorScript indicator; 

// Use this for initialization 
void Start() { 
    pipetteAnim.enabled = true; 
    pipetteMove.enabled = true; 
    indicator.enabled = true; 
} 

void OnMouseDown() { 
    pipetteAnim.Play ("Pipette_dropping"); 
    Debug.Log ("Anim playing"); 
    } 
} 

Журнал отладки даже печатает «Anim играть» каждый раз, когда я нажимаю на спрайт.

ответ

1

Использование анимации в функции обновления и позвольте мне обновить

public class PipetteScript : MonoBehaviour { 
public Animator pipetteAnim; 
public BoxCollider2D pipetteMove; 
public IndicatorScript indicator; 
public bool boolval = false; 

// Use this for initialization 
void Start() { 
    pipetteAnim.enabled = true; 
    pipetteMove.enabled = true; 
    indicator.enabled = true; 
} 
void update() 
{ 
if(boolval == true) 
    pipetteAnim.Play ("Pipette_dropping"); 
if(boolval == false) 
    pipetteAnim.Stop ("Pipette_dropping"); 
} 
void OnMouseDown() { 
    boolval = True; 
    } 
void OnMouseUp() { 
    boolval = False; 
    } 
+0

Я не могу использовать .stop для переменной типа Animator. –

+0

затем используйте SetBool like, 'pipetteAnim.SetBool (" Pipette_dropping ", false);' –

+0

SetBool тоже не работал, мне пришлось использовать триггер вместо ans, который заработал. –

Смежные вопросы