2013-11-28 32 views
0

錯誤說'MPPlayer'找不到,但我認爲它被引用。錯誤說遺漏功能

private void Menu_Lobby() 
    { 
     ScrollLobby = GUILayout.BeginScrollView(ScrollLobby, GUILayout.MaxWidth("200")); 

     foreach (MPPlayer pl in MultiplayerManager.instance.PlayerList) 
     { 
      GUILayout.Box (pl.PlayerName); 
     } 

     GUILayout.EndScrollView(); 
    } 

整版代碼:

using UnityEngine; 
using System.Collections; 

public class MenuManager : MonoBehaviour 
{ 
    public string CurrentMenu; 

    public string MatchName = ""; 
    public string MatchPassword = ""; 
    public int MatchMaxPlayers = 20; 

    private Vector2 ScrollLobby = Vector2.zero; 

    void Start() 
    { 
     CurrentMenu = "Main"; 
     MatchName = "My Server " + Random.Range(0 , 100); 
    } 

    void OnGUI() 
    { 
     if (CurrentMenu == "Main") 
      Menu_Main(); 
     if (CurrentMenu == "Lobby") 
      Menu_Lobby(); 
     if (CurrentMenu == "Host") 
      Menu_HostGame(); 
    } 

    public void NavigateTo(string nextmenu) 
    { 
     CurrentMenu = nextmenu; 
    } 

    private void Menu_Main() 
    { 
     if (GUI.Button(new Rect(10,10,200,50), "Create Game")) 
     { 
      NavigateTo ("Host"); 
     } 

     GUI.Label(new Rect(220, 10, 130, 30), "Player Name"); 
     MultiplayerManager.instance.PlayerName = GUI.TextField(new Rect(350, 10, 150, 30), MultiplayerManager.instance.PlayerName); 
     if (GUI.Button (new Rect(510,10,100,30), "Save")) 
     { 
      PlayerPrefs.SetString("PlayerName", MultiplayerManager.instance.PlayerName); 
     } 
    } 

    private void Menu_HostGame() 
    { 
     // Buttons Host Game 
     if (GUI.Button(new Rect(10,10,200,50), "Back")) 
     { 
      NavigateTo("Main"); 
     } 

     if (GUI.Button(new Rect(10,60,200,50), "Start Server")) 
     { 
      MultiplayerManager.instance.StartServer(MatchName, MatchPassword, MatchMaxPlayers); 
     } 

     GUI.Label(new Rect(220, 10, 130, 30), "Match Name"); 
     MatchName = GUI.TextField(new Rect(400, 10, 200, 30), MatchName); 

     GUI.Label(new Rect(220, 50, 130, 30), "Match Password"); 
     MatchPassword = GUI.PasswordField(new Rect(400, 50, 200, 30), MatchPassword, '*'); 

     GUI.Label(new Rect(220, 90, 130, 30), "Match Max Players"); 
     GUI.Label(new Rect(400, 90, 200, 30), MatchMaxPlayers.ToString()); 
     MatchMaxPlayers = Mathf.Clamp (MatchMaxPlayers, 6, 20); // Allows min of 6 players and a max of 20 players. 

     if (GUI.Button (new Rect(425,90,25,30), "+")) 
      MatchMaxPlayers += 2; // Adds 2 players to the number 
     if (GUI.Button (new Rect(450,90,25,30), "-")) 
      MatchMaxPlayers -= 2; // Takes 2 players from the number 
    } 

    private void Menu_Lobby() 
    { 
     ScrollLobby = GUILayout.BeginScrollView(ScrollLobby, GUILayout.MaxWidth("200")); 

     foreach (MPPlayer pl in MultiplayerManager.instance.PlayerList) 
     { 
      GUILayout.Box (pl.PlayerName); 
     } 

     GUILayout.EndScrollView(); 
    } 

    void OnServerInitialized() 
    { 
     NavigateTo("Lobby"); 
    } 

    void OnConnectedToServer() 
    { 
     NavigateTo("Lobby"); 
    } 
} 
+0

'MPPlayer'的命名空間和訪問修飾符是什麼? –

+0

public list PlayerList = new List (); – mjwrocks

+0

我指的是**類**'MPPlayer'。它是「公共」嗎?它和'MenuManager'在同一個命名空間嗎? –

回答

1

foreach (MPPlayer pl in MultiplayerManager.instance.PlayerList)更改爲foreach (var pl in MultiplayerManager.instance.PlayerList),並將鼠標懸停在VS var部分以查明實際類型名稱。

相關問題