非授权服务器连接

1、非授权服务器

 

 

 

----------------------------非授权服务器代码------------------------------

using UnityEngine;
using System.Collections;

public class networkserver : MonoBehaviour {
private string roip="127.0.0.1";
private int rport=10000;
//private int lport=10000;
private int concount=15;
private bool usenat = true ;

void OnGUI(){
switch (Network .peerType ){
case NetworkPeerType .Disconnected :
StartServer();
break ;
case NetworkPeerType.Server :
Onserver();
break ;
case NetworkPeerType.Connecting:
break;

}


}

void StartServer(){
roip =GUI.TextField(new Rect(10,30,100,20),roip);
if (GUI.Button(new Rect(10,50,100,30),"创建服务器")){
Network.incomingPassword="unitynetwork";
//启动服务器
NetworkConnectionError error=Network.InitializeServer(concount,rport,usenat);
Debug .Log (error);
}

}
void Onserver(){
GUILayout.Label ("创建服务器成功!等待连接。。。");
string ip=Network.player.ipAddress;
int port=Network.player.port ;
//显示外网IP
string exip=Network.player.externalIP;
GUILayout.Label ("IP地址:"+ip+"\n端口号:"+port+"\n外部IP:"+exip);
int connectlength=Network.connections.Length;
for(int i=0;i<connectlength;i++){
GUILayout.Label ("连接的IP:"+Network.connections[i].ipAddress );
GUILayout.Label ("连接的端口:"+Network.connections[i].port );

}
if(GUI.Button(new Rect(10,340,100,30),"断开连接")){
Network .Disconnect (200);
}

}

void OnPlayerDisconnected( NetworkPlayer player) {
//Debug.Log("Clean up after player " + player);
Network.RemoveRPCs(player);
Network.DestroyPlayerObjects(player);

}

}

 

2、客户端

 

 

-------------------------------------客户端代码----------------------------------------------

using UnityEngine;
using System.Collections;

public class networkclient : MonoBehaviour {
private string roip="192.168.0.100";
private int lport=10000;
//private bool usenat=false;
void OnGUI(){
switch (Network.peerType){
case NetworkPeerType .Disconnected :
Startconnect();
break;
case NetworkPeerType .Client:
Clientto();
break;
case NetworkPeerType.Connecting:
Debug.Log ("连接中");
break;
}
}


void Startconnect(){
roip=GUILayout.TextField(roip);
//lport=GUILayout.TextField("请输入要连接的端口",lport);
if (GUILayout.Button("连接服务器")){
NetworkConnectionError error=Network .Connect(roip,lport,"unitynetwork");
Debug.Log (error);
}
}


void Clientto(){
GUILayout.Label ("成功连接到服务器!");
}
//连接成功后系统自动调用函数
void OnConnectedToServer(){
foreach (GameObject go in FindObjectsOfType(typeof (GameObject))){
go.SendMessage("OnNetworkLoaded",SendMessageOptions.DontRequireReceiver);
}
}

void OnDisconnectedFromServer(NetworkDisconnection info){
//移除属于这个玩家的ID的RPC函数
Network.RemoveRPCs(Network.player);
//移除属于这个玩家的物体
Network.DestroyPlayerObjects(Network.player);
//重新加载场景
Application.LoadLevel(0);
}
}

 

--------------------------------实例化玩家代码------------------------------------

 

using UnityEngine;
using System.Collections;

public class playergame : MonoBehaviour {
public Transform control;
void OnNetworkLoaded(){
//实例化该目标对象
Network.Instantiate(control,transform.position,transform.rotation,0);
}
void Update(){
if(Network.isClient ){
Vector3 Direction=new Vector3(Input.GetAxis("Horizontal"),0,Input.GetAxis("Vertical"));
float speed=5.0f;
GameObject.FindGameObjectWithTag("Player").transform.Translate(speed*Direction*Time.deltaTime);

}
}
}

 

 

 在同时运行这两个工程时,输入了ip连接服务器的时候,要点击一下创建了服务器的工程窗口。。。。。。。。。

转载于:https://www.cnblogs.com/ZeroMurder/p/5951370.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值