2016-08-07 25 views
0
#pragma strict 

var anim : Animator; 

function Start() { 
    anim = GetComponent("Animator"); 

    }  

function Update() {  
    if (Input.GetButtonDown("Fire1")) 
    { 
     anim.SetFloat("hit",1);  
    } 
} 

Ich habe gesetzt ‚Treffer‘ float Parameter mit ‚Angriff‘ Zustand, wenn der Wert von ‚Hit‘> 0,1, dann Übergang zu ‚Angriff‘ Zustand von ‚Ruhezustand‘.Animation, Looping obwohl Schleifen-Zeit ist nicht markiert

Jetzt Problem ist, wenn ich Maus linke Maustaste, der Übergang von Leerlauf zu "Angriff" und Modell die gewünschte Aufgabe ausführen, dann geht der Übergang von "Angriff auf Leerlauf" und dann wieder Übergang geht "Leerlauf zum Angriff" und geht in die Schleife.

Ich habe LoopTime, Loop Poseto in animationClip deaktiviert, aber immer noch das Gleiche passiert.

Ich verstehe, das obige geht in Schleife, weil der "Treffer" -Parameter nie < 0.1 wird, so dass die Bedingung immer wahr und Übergang passiert Angriffszustand.

Wenn ich die obige Zeile zu der obigen Update() Funktion hinzufüge, dann passiert der Übergang nie.

anim.SetFloat("hit",0); 

Ich weiß nicht, wo das Problem ist, was soll ich tun ??, ich will, wenn ich linke Maustaste klicken, dann sollte Modell einmal getroffen und gehe dann zurück in dem Ruhezustand, dann wieder, wenn ich per Mausklick Linksklick, dann nur das sollte es ..

Irgendwelche Hilfe ?? Bitte

Vielen Dank im Voraus

Antwort

0

können Sie trigger für Dinge verwenden, die einmal passiert, und dann sollten sie in den Zustand sie kamen wie schlagen oder oder etc

springen zurück
anim.SetTrigger("hit"); 
+0

Hey toll, du hast mir viel Zeit und Suche gespart .. das wusste ich nicht .. Egal danke :-) –

0

Der Parameter für die Einzelangriffs-Animationssteuerung sollte ein Trigger anstelle von float sein. Auf diese Weise bleibt der Animator im Leerlauf.

Wenn Sie float als nach Abschluss der Animation verwenden möchten, müssen Sie den Gleitkommawert auf setzen. Auf diese Weise bleibt der Parameter nicht größer als 0,1, was für float erforderlich ist, um bei der Standardanimation zu bleiben.

+0

Danke, du warst auch correcr = t .. :-) –