Unity Network初窥 内置的网络组件使用整理

来源:互联网 发布:淘宝预售 编辑:程序博客网 时间:2024/05/20 18:42

版本:unity 5.3.4  语言:C#

 

这边主要参考了雨松大的文章(没找到原文,大家自己找找看看吧)。

 

听说现在Unity最新的版本已经用了一种新的网络组件,不过公司的项目都还是老项目,然后主程大让我看一下Network相关的内容,我正好把一些使用的方法整理一下。

 

首先这个方法:

Network.peerType

这个方法可以获取当前端的状态,一共有四种状态,一开始看可能有些茫然,但是分为服务端和客户端来看就好多了,首先是服务端:

NetworkPeerType.Disconnected:  //服务端未初始化时NetworkPeerType.Server:    //初始化成功、开始监听后

对,就这两个状态,然后客户端就三个状态,其中未初始化的状态跟服务端重叠:

NetworkPeerType.Disconnected:  //客户端未初始化NetworkPeerType.Connecting:    //客服端正在请求和服务端建立连接NetworkPeerType.Client:    //客户端跟服务端建立连接

然后是服务端的初始化函数:

// 服务端在10001端口进行监听,12为最大连接数量NetworkConnectionError error = Network.InitializeServer(12, 10001, false);Network.connections.Length;    //获取当前的连接数量


客户端的连接的函数:

NetworkConnectionError error = Network.Connect("127.0.0.1", 10001);   //主动连接


最后是断开函数,不管是服务端或是客户端都可以使用,会回到Disconnected的状态:

Network.Disconnect();

如果客户端和服务端进行数据传输就要使用到RPC,相当于Socket注册回调的函数:

[RPC]void ReciveMessage(string msg, NetworkMessageInfo info){    message = "发送端" + info.sender + "消息" + msg        + "时间" + info.timestamp + "网络视图" + info.networkView;}

另一端可以通过以下方法进行调用:

GetComponent<NetworkView>().RPC("ReciveMessage", RPCMode.All, message);

需要注意的是在调用RPC函数的一端必须要有以下的组件NetworkView:



OK,今天就到这边为止。


0 0
原创粉丝点击