zoukankan      html  css  js  c++  java
  • Unity3D学习笔记(四)Unity的网络基础(C#)

    一 网络下载
    可以使用WWW类下载资源
    用法:以下载图片为例
    WWW date = new WWW("<url>");
    yield return date;
    texture = date.texture;
    注意函数的返回值类型为IEnumerator,下载函数尽量使用StartCoroutine(function())协同程序。
    对于本地资源,url为"file://"+路径,如果使用当前目录,可以使用Application.dataPath
    用这个方法同样可以在线更新资源包。

    二 创建本地服务器
    网络状态可以通过NetworkpeerType的成员来获取,状态分为四种,分别是:
    NetworkPeerType.Disconnected 未开启,在这里编写欢迎界面。
    NetworkPeerType.Server 成功运行为服务端,在这里编写服务器脚本。
    NetworkPeerType.Client 成功运行为客户端
    NetworkPeerType.Connecting 正在尝试连接
    一般使用switch来获取状态和处理事件。
    在NetworkPeerType.Disconnected状态下,可以使用Network.InitializeServer(maxconnect,Port,is_support_NAT);
    第一个参数表示最大连接数,第二参数表示端口号,第三参数表示是否支持NAT(网络地址转换)方式连接
    使用Network.Disconnected可以中断连接。

    三 创建客户端
    定义NetworkConnectionError类型的变量error接收Network的Connecte方法的返回值,如下:
    NetworkConnectionError error = Network.Connect(IP, Port);
    IP是服务器的地址

    四 服务器响应
    首先给服务器脚本所在组件(如主摄像机)添加Network View组件(在Miscellaneous类别内)。
    网络视图组件用于系统使用RPC来接收网络请求。

    服务器部分:
    声明RPC接收函数的方法:
    [RPC]
    void RequestMessage(string message, NetworkMessageInfo info)
    {
        //message是消息内容
        //info是附带信息
        如info.sender是发送者的编号
    }

    客户端部分:
    消息的发送函数:
    networkView.RPC("RPC function name", option, message);
    其中RPC function即为刚才创建的RequestMessage函数。
    option一共有四种
    RPCMode.Server 向服务器发送
           .Others 向除发送者外发送
           .OthersBuffered
           .All 发送给所有人,包括自己
           .AllBuffered
    注:加上Buffered的含义是将数据添加到缓冲区

  • 相关阅读:
    使用NDK编译 libyuv <转>
    x264中重要结构体参数解释,参数设置,函数说明 <转>
    x264的一些参数设置对编码效率的影响
    首都儿研所开钙片!!!
    Android 媒体编解码器(转)
    opengl版本和扩展
    ffmpeg一揽子
    Android 使用SWIG生成Jni代码<转>
    CF 19D 线段树+set压缩坐标轴+离散化map
    android4.0 FaceDetection笔记
  • 原文地址:https://www.cnblogs.com/aiwz/p/6154275.html
Copyright © 2011-2022 走看看