2016-10-13 4 views
-1

Ich habe dieses Skript an ein GameObject dann an ein Button-Skript angefügt, aber das Button-Skript zeigt nicht die "NewGame" -Funktion (Klick Link für Bild) image. Der Code scheint keine Fehler zu enthalten. Was könnte das Problem sein?New Button funktioniert nicht

using UnityEngine; 
using System.Collections; 
using System; 
using System.Runtime.Serialization.Formatters.Binary; 
using System.IO; 
using UnityEngine.SceneManagement; 

public class LoadAndNew : MonoBehaviour { 
    public string LoadCode; 
    public static string GlobalLoad; 
    public string fileName = "SaveGame.dat"; 

    void Load() 

    { 

     if(File.Exists(Application.persistentDataPath + "/SaveGame.dat" )) 
     { 
      BinaryFormatter bf = new BinaryFormatter(); 
      FileStream file = File.Open(Application.persistentDataPath + "/SaveGame.dat", FileMode.Open); 
      bf.Deserialize(file); 
      file.Close(); 

     } 
    } 

    void QuitGame() 
    { 
     Application.Quit(); 
    } 
    void NewGame() 
    { 
     SceneManager.LoadScene(1); 
    } 



} 

Antwort

0

Sie fehlt das public Stichwort, versuchen Sie diese

public void NewGame() 
{ 
    SceneManager.LoadScene(1); 
} 

Sie werden wahrscheinlich das gleiche Problem haben mit den QuitGame und Load Funktionen

+0

Danke! bin dankbar! –

1

Für eine Funktion in der Taste zu zeigen OnClick-Ereignissteckplatz im Editor,

  • Es muss m sein ade öffentlich.
  • Es darf keine statische Funktion sein.
  • Es muss nur einen Parameter oder keine haben.

Sie vermissen die erste erwähnte ich.

Um diese Einschränkungen zu entfernen, können Sie stattdessen die Funktion vom Code aus registrieren. Es funktioniert, ob es eine private oder public Funktion ist.

public Button button1; 
void Start() 
{ 
    button1.onClick.AddListener(() => NewGame()); 
} 

void NewGame() 
{ 
    SceneManager.LoadScene(1); 
} 
+0

Sicherlich eine vollständigere Antwort –