关于网络连接Network的使用

来源:互联网 发布:windows安装hadoop2.7 编辑:程序博客网 时间:2024/06/05 23:42

开发一个局域网连接

代码:

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;    }}


0 0
原创粉丝点击