2016-04-09 12 views
0

Ich versuche, Game(); wieder zu laden, wenn der Pfeil nach oben gedrückt wird, aber es wird nicht ausgeführt. Dies ist ein Teil des Codes. Immer wenn der Pfeil nach oben gedrückt wird, möchte ich nur Game(); laufen lassen und ich kann nicht herausfinden, warum es nicht ist. Ich bin ziemlich neu in der Programmierung, also könnte es nur ein einfaches Problem sein und ich bin nur dumm.C# GetKeyDown wird nicht unter Update ausgeführt

Antwort

0

In Ihrem Unity Editor in der oberen linken Ecke gehen Sie zu Bearbeiten> Projekteinstellungen> Eingabe. Dort finden Sie einige Achsen und Sie können neue hinzufügen, indem Sie die Variable Größe ändern oder nur eine bearbeiten. Um den Schlüssel zu ändern, bearbeiten Sie einfach die positiven Schlüssel. Negative Schlüssel werden zurückgegeben, wenn der Wert -1 und positive 1 ist. Alt ist ein alternativer Schlüssel, den Sie verwenden können, wie zB W. Für Pfeil nach oben, Pfeil nach unten, Pfeil nach rechts und Pfeil nach links. Dann in Ihrem Code anstelle von if(Input.GetKeyDown(KeyCode.UpArrow)) {} verwenden Sie if(Input.GetAxis("AxisName")) {} auch der Name der Achse ist empfindlich, so dass Sie Leerzeichen und Groß- oder Kleinbuchstaben verwenden müssen.

0

Sie machen das schwer für Sie. Ich glaube nicht, dass Sie verstehen, wie die Update Funktion aufgerufen wird. Verwenden Sie SceneManager.GetActiveScene().name, um den Namen der aktuellen Szene zu erhalten, dann SceneManager.LoadScene(SceneName); zu laden Sie die Szene, wenn der Pfeil Pfeil gedrückt wird. Sie nur müssen überprüfen, ob die Pfeiltaste nach oben in der Update-Funktion gedrückt wird. Ihr Code ist redundant. Im Folgenden finden Sie eine Fehlerbehebung für Ihren Code.

using UnityEngine; 
using UnityEngine.UI; 
using System.Collections; 
using UnityEngine.SceneManagement; 

public class GameScript : MonoBehaviour { 

    public Text text; 

    // Update is called once per frame 
    void Update() 
    { 
     //Check if up key is pressed 
     if (Input.GetKeyDown(KeyCode.UpArrow)) 
     { 
      //Call the Game() function because up key was pressed 
      Game(); 
     } 
    } 

    void Game() 
    { 
     //text.text = "Is your number " + compGuess + "?\n\n Press Up Arrow for higher, Down Arrow for lower and Space for equal to."; 
     Debug.Log("Up Key Pressed!...Re-Loading Level"); 

     //Get name of current scene 
     string currentSceneName = SceneManager.GetActiveScene().name; 

     //Load current Scene again 
     SceneManager.LoadScene(currentSceneName); 

    } 
} 
Verwandte Themen