Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/304.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 表示缺少函数时出错_C#_Unity3d - Fatal编程技术网

C# 表示缺少函数时出错

C# 表示缺少函数时出错,c#,unity3d,C#,Unity3d,错误说明找不到“MPPlayer”,但我认为它被引用了 private void Menu_Lobby() { ScrollLobby = GUILayout.BeginScrollView(ScrollLobby, GUILayout.MaxWidth("200")); foreach (MPPlayer pl in MultiplayerManager.instance.PlayerList) { GUILay

错误说明找不到“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");
    }
}
也许这会有帮助

尤其是这个


foreach(MultiplayerManager.instance.PlayerList中的MPPlayer pl)更改为
foreach(MultiplayerManager.instance.PlayerList中的var pl)
和鼠标悬停在VS
var
部分,找出实际的类型名称。

MPPlayer的名称空间和访问修饰符是什么
?public List PlayerList=new List();我指的是类
MPPlayer
。它是公共的吗?它是否与
MenuManager
位于同一命名空间中?是@jeroenvanevel该类是公共的,但以下内容位于另一个使用该类的C#脚本中<代码>公共类MPPlayer{public string PlayerName=”“;公共网络播放器PlayerNetwork;}