2016-07-22 10 views
0

Ich habe eine 2D-Skeleton Animation des menschlichen Laufzyklus - das ist in Ordnung. Ich bemühe mich schwer zu programmieren, dass STOP nur Hände Animation aber Beine sollten nicht (auf einer Spielereingabe - zum Beispiel auf Leertaste drücken) Ist es möglich, Animation Keyframes/Kurven/Eigenschaften unter bestimmten Bedingungen oder auf andere Weise zu erreichen Dies.Unity 2D-Animation läuft teilweise

Antwort

0

Haben Sie mehrere Zustände in Ihrem Animations-Controller. Lassen Sie einen Staat haben beide Hände und Beine Animation, und die andere haben nur Beine Animation. Übergang vom ersten zum anderen Zustand durch Hinzufügen eines Parameters in Ihrem Animations-Controller. Lassen Sie den Parameter ein bool sein.

Ex: Von Animation zur Ruhe Animation läuft, haben eine Bool stopRunning und von Rest-Animation Animation laufen, haben einen Bool startRunning

Also, wenn die statRunning Bool gesetzt, Animation die Zeichen Transite von Rest-Animation zum Laufen und wenn die stopRunning Bool gesetzt ist, wird der Charakter zur Ruhe gelegt.

dann in Ihrem Code, wenn die Leertaste gedrückt wird, rufen Sie diese Funktionen

public void StopRunning() { 
     if (_PlayerAnimator.isActiveAndEnabled) { 
      _PlayerAnimator.SetBool("stopRunning", true); 
      _PlayerAnimator.SetBool("startRunning", false); 
     } 
    } 

public void StartRunning() { 
     if (_PlayerAnimator.isActiveAndEnabled) { 
      _PlayerAnimator.SetBool("startRunning", true); 
      _PlayerAnimator.SetBool("stopRunning", false); 
     } 
    } 
+0

Ich dachte so, aber Animation zwischen den Staaten nicht wie erwartet sein. – Yogesh

+0

Vertrau mir, sie werden es sein. Tweak die Parameter und reduzieren Sie die Übergangsdauer auf 0. Sie werden bissige Animation bekommen! –