using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class MyServer : MonoBehaviour
{
string roip = "127.0.0.1";
//连接服务器的端口号
int rport = 10000;
//判断是否使用Nat转换技术
bool usenat = false;
//允许连接服务器的客户端个数
int concount = 15;
private void OnGUI()
{
//Network.peerType网络状态信息类型
switch (Network.peerType)
{
//NetworkPeerType.Disconnected 网络没有启动,没有连接
case NetworkPeerType.Disconnected:
//启动服务器(自定义函数)
StartServer();
break;
// NetworkPeerType.Server服务器已经启动
case NetworkPeerType.Server:
//响应服务器(自定义函数)
OnServer();
break;
//etworkPeerType.Connecting服务器正在连接
case NetworkPeerType.Connecting:
break;
}
}
void StartServer()
{
//创建一个文本按钮,默认内容为roip
roip = GUI.TextField(new Rect(10, 30, 100, 20),roip);
//创建服务器按钮,并设置触发后的运行代码
if(GUI.Button(new Rect(10,50,100,30),"创建服务器"))
{
//设置网络登录密码
Network.incomingPassword = "123456";
//自动连接服务器,并设置判断错误信息
NetworkConnectionError error = Network.InitializeServer(concount,rport,usenat);
//如果出错就输出错误信息
Debug.Log(error);
}
}
private void OnServer()
{
GUILayout.Label("创建服务器成功!等待连接.......");
//获得服务器局域网ip地址和端口号,并输出显示
string ip = Network.player.ipAddress;
int port = Network.player.port;
GUILayout.Label("IP地址:" + ip + "\n端口号:" + port);
//connections是连接服务器的客户端数组,获取这个数组的元素个数
int connectLength = Network.connections.Length;
//循环打印连接服务器的客户端ip地址和端口号
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);断开服务器函数,超时时间为200秒
Network.Disconnect(200);
}
}
}
unity未授权服务器脚本代码
最新推荐文章于 2024-07-22 06:40:14 发布