hello
im creating a multiplayer game, but it’s now only send data from the server to the client.
And i want to send data from the client to the server to.
have you any idea to do it?
de code:
using UnityEngine;
using System.Collections;
public class Menu : MonoBehaviour {
public string IP = "127.0.0.1";
public int Port = 25001;
public GameObject target;
public string username = "";
bool RegisterUI = false;
bool LoginUI = false;
public int MaxConn = 2;
void Awake () {
Object[] objs = FindObjectsOfType (typeof(Menu));
if (objs.Length > 1) {
Destroy (gameObject);
} else {
DontDestroyOnLoad (this);
}
}
void OnGUI()
{
if(Network.peerType == NetworkPeerType.Disconnected)
{
if(GUI.Button(new Rect(100,100,100,25),"Start Client"))
{
Network.Connect(IP,Port);
}
if(GUI.Button(new Rect(100,125,100,25),"Start Server"))
{
Network.InitializeServer(10,Port);
}
}
else {
if(Network.peerType == NetworkPeerType.Client)
{
if(RegisterUI == true LoginUI == false)
{
username = GUI.TextArea(new Rect(100,125,110,25),username);
if(GUI.Button(new Rect(100,150,110,25),"Register"))
{
networkView.RPC("Register",RPCMode.Server,username);
RegisterUI = false;
}
}
else if(LoginUI == true RegisterUI == false)
{
username = GUI.TextArea(new Rect(100,125,110,25),username);
if(GUI.Button(new Rect(100,150,110,25),"Login"))
{
networkView.RPC("Login",RPCMode.Server,username);
}
}
else {
GUI.Label(new Rect(100,100,100,25),"Client");
if(GUI.Button(new Rect(100,125,110,25),"Login"))
{
LoginUI = true;
}
if(GUI.Button(new Rect(100,150,110,25),"Register"))
{
RegisterUI = true;
}
if(GUI.Button(new Rect(100,175,110,25),"Logout"))
{
Network.Disconnect(250);
}
}
}
if(Network.peerType == NetworkPeerType.Server)
{
Network.maxConnections = MaxConn;
GUI.Label(new Rect(100,100,100,25),"Server");
GUI.Label(new Rect(100,125,100,25),"Connections: " + Network.connections.Length);
GUI.Label(new Rect(100,150,200,25),"MaxConnections: " + Network.maxConnections);
if(GUI.Button(new Rect(100,200,100,25),"Logout"))
{
Network.Disconnect(250);
}
if(GUI.Button(new Rect(250,150,25,25),"+"))
{
MaxConn = MaxConn + 1;
}
if(GUI.Button(new Rect(275,150,25,25),"-"))
{
MaxConn = MaxConn - 1;
}
}
}
}
[RPC]
void Login(string Username)
{
if(Network.isServer)
{
bool checkUsername = PlayerPrefs.HasKey(Username);
if(checkUsername == true)
{
networkView.RPC("LoadLevel",RPCMode.Others);
}
}
}
[RPC]
void LoadLevel()
{
if(Network.isClient)
{
if(Application.loadedLevel == 0)
{
Application.LoadLevel(1);
}
}
}
[RPC]
void Register(string Username)
{
if(Network.isServer)
{
PlayerPrefs.SetString(Username,Username);
}
}
}