2016-05-13 7 views
1

Ich versuche, eine Funktion zu erstellen, die sich über einen bestimmten Zeitraum dreht, ich rufe es aus einer Co-Routine, ausgelöst durch eine Schaltfläche. Die Coroutine wird ordnungsgemäß ausgeführt, das einzige Problem besteht darin, dass Sie sie mehrmals auslösen können.Unity Easing im Laufe der Zeit sollte einmal auslösen

Wie kann ich dieses Feuer einmal haben und nicht registrieren, um erneut zu feuern, bis die Rotation abgeschlossen ist?

Antwort

2

Verwenden Sie yield break. Es ist wie das Schlüsselwort return in einer Void-Funktion. Es wird von der Funktion zurückgegeben/existieren. Auch setzen Sie die _isRotating = true; nach der if Anweisung statt davor. Lassen Sie den Rest des Codes wo sie sind.

ändern

_isRotating = true; 
if(_isRotating) 
{ 
    yield return null; 
} 

zu

if (_isRotating) 
{ 
    yield break; 
} 
_isRotating = true; 
+0

Dank hatte ich eine Rotation dort in kopierte ich einfach falsch –

+0

ist das in Ordnung. Das Hauptproblem ist die Verwendung der 'yield return null;' die tatsächlich auf Frame wartet und dann fortfährt. – Programmer

Verwandte Themen