2016-03-28 9 views
-2

ich einen Abschnitt von Code, der mit dem Fehler vonNicht alle Codepfade einen Wert zurückgeben: Unity

„Nicht alle Codepfade einen Wert zurückgeben“

Ich habe keine Ahnung kompiliert wie man das beheben kann. Irgendwelche Ideen? Hier ist mein Code.

bool EnemyIsAlive() 
{ 
    searchCountdown -= Time.deltaTime; 
    if (searchCountdown <= 0f) 
    { 
     searchCountdown = 1f; 
     if (GameObject.FindGameObjectWithTag("Enemy") == null) 
     { 
      return false; 
     } 
    return true; 
    } 
} 
+0

Mögliche Duplikat [C# Fehler zurückgegeben „nicht alle Codepfade einen Wert zurückgeben“] (http://stackoverflow.com/questions/21197410/c-sharp-returning-error-not-all-code- Pfade-Rückgabewert – Serlite

Antwort

1

Die EnemyIsAlive() sollte einen booleschen Wert für alle möglichen Bedingungen zurückgeben; in Ihrem Fall; Die Methode gibt nichts zurück, wenn if (searchCountdown <= 0f) zu false ausgewertet wird. Sie müssen also eine Rückgabeanweisung für die falsche Bedingung hinzufügen. Es kann true/false nach dem Szenario, mit dem Sie es zu tun haben, aber eine Rückkehr sollte da sein.

bool EnemyIsAlive() 
{ 
    searchCountdown -= Time.deltaTime; 
    if (searchCountdown <= 0f) 
    { 
     searchCountdown = 1f; 
     if (GameObject.FindGameObjectWithTag("Enemy") == null) 
     { 
      return false; 
     } 
    return true; 
    } 
    return false; // one line added to solve the error 
} 
Verwandte Themen