版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/yeluo_vinager/article/details/52711034
开发一个局域网连接
代码:
using UnityEngine;
using System.Collections;
public class all : MonoBehaviour
{
private int serverPort;
public int HP = 10000;
public int MP = 10000;
private string IP = "192.168.56.140";
private string clientIp;
// private string clientIpSplite;
public GameObject cube;
private bool cubeInitialed = false;
//Connet port
private int Port = 10000;
void Awake()
{
serverPort = 10000;
}
//OnGUI方法,所有GUI的绘制都需要在这个方法中实现
void OnGUI()
{
//Network.peerType是端类型的状态:
//即disconnected, connecting, server 或 client四种
switch (Network.peerType)
{
//禁止客户端连接运行, 服务器未初始化
case NetworkPeerType.Disconnected:
StartServer();
StartConnect();
break;
//运行于服务器端
case NetworkPeerType.Server:
OnServer();
break;
//运行于客户端
case NetworkPeerType.Client:
OnConnect();
break;
//正在尝试连接到服务器
case NetworkPeerType.Connecting:
break;
}
GUILayout.Label(Network.player.ipAddress);
}
void StartConnect()
{
if (GUILayout.Button("Connect Server"))
{
NetworkConnectionError error = Network.Connect(IP, Port);
Debug.Log("connect status:" + error);
}
}
void OnConnect()
{
if (!cubeInitialed)
{
Network.Instantiate(cube, transform.position, transform.rotation, 0);
cubeInitialed = true;
}
GUILayout.Label("Hp" + HP);
GUILayout.Label("Mp" + MP);
}
void StartServer()
{
//当用户点击按钮的时候为true
if (GUILayout.Button("创建服务器"))
{
//初始化本机服务器端口,第一个参数就是本机接收多少连接
NetworkConnectionError error = Network.InitializeServer(12, serverPort, false);
Debug.Log("错误日志" + error);
}
}
void OnServer()
{
GUILayout.Label("服务端已经运行,等待客户端连接");
int length = Network.connections.Length;
for (int i = 0; i < length; i++)
{
GUILayout.Label("客户端" + i);
GUILayout.Label("客户端ip" + Network.connections[i].ipAddress);
GUILayout.Label("客户端端口" + Network.connections[i].port);
}
if (GUILayout.Button("传递 "))
{
GetComponent<NetworkView>().RPC("GetModel", RPCMode.Server, 200,10);//一百是攻击数值
}
}
public GameObject co;
void OnServerInitialized()
{
print("服务器创建成功");
Network.Instantiate(co, co.transform.position, co.transform.rotation, 0);
}
[RPC]
void GetModel(int att,int aww) {
HP -= att;
MP -= aww;
}
}