вот код MenuManager
Синтаксис:
Используется csharp
using UnityEngine;
using System.Collections;
public class MenuManager : MonoBehaviour {
public string CurrentMenu;
public string MatchName = "";
public string MatchPassword = "";
public int MaxPlayers = 32;
public GUISkin GameSkin;
void Start()
{
CurrentMenu = "Main";
}
void OnGUI()
{
GUI.skin = GameSkin;
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,150,50),"Host_Game"))
{
NavigateTo("Host");
}
GUI.Label(new Rect(200,10,100,30), "Player Name");
MultiplayerManager.instance.PlayerName = GUI.TextField(new Rect(400,10,200,30),MultiplayerManager.instance.PlayerName);
}
private void Menu_HostGame()
{
//button Host game
if (GUI.Button(new Rect(10,60,150,50),"Back"))
{
NavigateTo("Main");
}
if (GUI.Button(new Rect(10,10,150,50),"Start"))
{
MultiplayerManager.instance.StartServer( MatchName, MatchPassword, MaxPlayers);
}
GUI.Label(new Rect(200,10,100,30), "Name");
MatchName = GUI.TextField(new Rect(400,10,200,30),MatchName);
GUI.Label(new Rect(200,60,100,30), "Password");
MatchPassword = GUI.PasswordField(new Rect(400,60,200,30), MatchPassword, '*');
GUI.Label(new Rect(200,90,100,30), "Max Players");
GUI.Label(new Rect(400,90,200,30), MaxPlayers.ToString());
MaxPlayers = Mathf.Clamp(MaxPlayers, 8, 32);
if (GUI.Button(new Rect(425,90,25,30),"+"))
MaxPlayers += 2;
if (GUI.Button(new Rect(450,90,25,30),"-"))
MaxPlayers -= 2;
}
private void Menu_Lobby()
{
}
}
using System.Collections;
public class MenuManager : MonoBehaviour {
public string CurrentMenu;
public string MatchName = "";
public string MatchPassword = "";
public int MaxPlayers = 32;
public GUISkin GameSkin;
void Start()
{
CurrentMenu = "Main";
}
void OnGUI()
{
GUI.skin = GameSkin;
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,150,50),"Host_Game"))
{
NavigateTo("Host");
}
GUI.Label(new Rect(200,10,100,30), "Player Name");
MultiplayerManager.instance.PlayerName = GUI.TextField(new Rect(400,10,200,30),MultiplayerManager.instance.PlayerName);
}
private void Menu_HostGame()
{
//button Host game
if (GUI.Button(new Rect(10,60,150,50),"Back"))
{
NavigateTo("Main");
}
if (GUI.Button(new Rect(10,10,150,50),"Start"))
{
MultiplayerManager.instance.StartServer( MatchName, MatchPassword, MaxPlayers);
}
GUI.Label(new Rect(200,10,100,30), "Name");
MatchName = GUI.TextField(new Rect(400,10,200,30),MatchName);
GUI.Label(new Rect(200,60,100,30), "Password");
MatchPassword = GUI.PasswordField(new Rect(400,60,200,30), MatchPassword, '*');
GUI.Label(new Rect(200,90,100,30), "Max Players");
GUI.Label(new Rect(400,90,200,30), MaxPlayers.ToString());
MaxPlayers = Mathf.Clamp(MaxPlayers, 8, 32);
if (GUI.Button(new Rect(425,90,25,30),"+"))
MaxPlayers += 2;
if (GUI.Button(new Rect(450,90,25,30),"-"))
MaxPlayers -= 2;
}
private void Menu_Lobby()
{
}
}
и MP manager
Синтаксис:
Используется csharp
using UnityEngine;
using System.Collections;
using System.Collections.Generic;
public class MultiplayerManager : MonoBehaviour {
public static MultiplayerManager instance;
public string PlayerName;
private string Name = "";
private string Password = "";
private int MaxUsers = 32;
public List<mpPlayer> PlayerList = new List<mpPlayer>();
void Start()
{
instance = this;
}
void StartServer(string serverName,string serverPassword,int maxusers)
{
Name = serverName;
Password = serverPassword;
MaxUsers = maxusers;
Network.InitializeServer(MaxUsers, 2550, false);
Network.InitializeSecurity();
}
void OnServerInitialized()
{
Server_PlayerJointRequest("",Network.player);
}
void OnConnectedToServer()
{
NetworkView.RPC("Server_PlayerJointRequest", RPCMode.Server, "",Network.player);
}
void OnPlayerDisconnected (NetworkPlayer id)
{
NetworkView.RPC("Client_RemoovePlayer", RPCMode.All, id);
}
[RPC]
void Server_PlayerJointRequest(string playername,NetworkPlayer view)
{
NetworkView.RPC("Client_AddPlayerToList", RPCMode.All, playername, view);
}
[RPC]
void Client_AddPlayerToList(string playername,NetworkPlayer view)
{
mpPlayer = tempPlayer = new mpPlayer ();
tempplayer.PlayerName = playername;
tempplayer.PlayerNetwork = view;
PlayerList.Add(tempplayer);
}
[RPC]
void Client_RemoovePlayer(NetworkPlayer view)
{
mpPlayer temppl = null;
foreach(mpPlayer pl in PlayerList)
{
if (pl.PlayerNetwork == view)
{
temppl = pl;
}
}
if (temppl != null)
{
PlayerList.Remove(temppl);
}
}
}
public class mpPlayer{
public string PlayerName = "";
public NetworkPlayer PlayerNet;
}
using System.Collections;
using System.Collections.Generic;
public class MultiplayerManager : MonoBehaviour {
public static MultiplayerManager instance;
public string PlayerName;
private string Name = "";
private string Password = "";
private int MaxUsers = 32;
public List<mpPlayer> PlayerList = new List<mpPlayer>();
void Start()
{
instance = this;
}
void StartServer(string serverName,string serverPassword,int maxusers)
{
Name = serverName;
Password = serverPassword;
MaxUsers = maxusers;
Network.InitializeServer(MaxUsers, 2550, false);
Network.InitializeSecurity();
}
void OnServerInitialized()
{
Server_PlayerJointRequest("",Network.player);
}
void OnConnectedToServer()
{
NetworkView.RPC("Server_PlayerJointRequest", RPCMode.Server, "",Network.player);
}
void OnPlayerDisconnected (NetworkPlayer id)
{
NetworkView.RPC("Client_RemoovePlayer", RPCMode.All, id);
}
[RPC]
void Server_PlayerJointRequest(string playername,NetworkPlayer view)
{
NetworkView.RPC("Client_AddPlayerToList", RPCMode.All, playername, view);
}
[RPC]
void Client_AddPlayerToList(string playername,NetworkPlayer view)
{
mpPlayer = tempPlayer = new mpPlayer ();
tempplayer.PlayerName = playername;
tempplayer.PlayerNetwork = view;
PlayerList.Add(tempplayer);
}
[RPC]
void Client_RemoovePlayer(NetworkPlayer view)
{
mpPlayer temppl = null;
foreach(mpPlayer pl in PlayerList)
{
if (pl.PlayerNetwork == view)
{
temppl = pl;
}
}
if (temppl != null)
{
PlayerList.Remove(temppl);
}
}
}
public class mpPlayer{
public string PlayerName = "";
public NetworkPlayer PlayerNet;
}
И сама ошибка - Assets/Scripts_MP/MenuManager.cs(54,61): error CS0122: `MultiplayerManager.StartServer(string, string, int)' is inaccessible due to its protection level