Jump to content
Unity Insider Forum

Animation und Bewegungen


Sakres01

Recommended Posts

Hey,

ich habe ein kleinen Problem.

1. Ich habe für einen Character eine kleine Fun-Animation erstellt, also wenn ich E drücke, dann macht er was lustiges. Ich habe im Animator auch schon eingestellt, dass die Sequenz immer zu Ende laufen soll, bevor die nächste startet.

Wenn ich allerdings auf W drücke, die Taste mit welche er sich nach vorne bewegen soll, dann bewegt sich mein Character schon nach vorne, bevor diese Fun-Animation vorbei ist und ich hätte gerne, dass das nicht mehr funktioniert und der Character sich nur noch bewegt, wenn auch die Laufanimation an ist.

Wie kann ich da mein C#-Script am besten gestalten, damit das alles so funktioniert?

 

2. Man hat ja über den Animator die Möglichkeit die Geschwindigkeit der Animation zu erhöhen. Wenn ich jetzt z.B. wollte, dass eine Laufanimation schneller wird (Wirklich nur die Laufanimation, nicht die Geschwindigkeit vom Character selber), wenn ich z.B. Pfeiltaste nach oben gedrückt halte, hat man da die Möglichkeit, im Script, irgendwie auf diesen Speed-Multiplikator (oder wie man es auch immer nennen will^^) zuzugreifen?

Wenn ja, wie müsste es dann aussehen?

 

Viele Dank schon einmal im Voraus :D

Link zu diesem Kommentar
Auf anderen Seiten teilen

z.B.

 

Animator anim;	
int walkState = Animator.StringToHash("Base.Walk");  

 void Start (){
	 anim = GetComponent<Animator>();					
 }

 void FixedUpdate ()
 {
	 AnimatorStateInfo currentBaseState = anim.GetCurrentAnimatorStateInfo(0);

	 if (currentBaseState.nameHash == walkState){

	 }
 }

 

So ungefähr kannst du die Zustände abfragen. Schau dir einfach mal gut in der Scripting Reference an. was das Objekt Animator alles so kann.

 

edit:

 

Oder noch etwas kürzer

 

 if( anim.GetCurrentAnimatorStateInfo(0).IsName("MyAnimationName"))
 {

 }

Link zu diesem Kommentar
Auf anderen Seiten teilen

Archiviert

Dieses Thema ist jetzt archiviert und für weitere Antworten gesperrt.

×
×
  • Neu erstellen...