Unity3D学习笔记(四)Unity的网络基础(C#)
来源:互联网 发布:java时间戳转换工具 编辑:程序博客网 时间:2024/06/04 23:34
一 网络下载
可以使用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的含义是将数据添加到缓冲区
- Unity3D学习笔记(四)Unity的网络基础(C#)
- Unity3D学习笔记(二)Unity的JavaScript基础
- Unity3D学习笔记(三)Unity的C#基础
- Unity3D 学习笔记(四) Unity连接MySQL数据库
- 自己用的unity学习笔记(四)——unity3d UGUI
- XLT的unity3D学习笔记(四)
- 自己用的unity学习笔记(一)——unity3d基础操作
- unity shader学习笔记(四)——Unity中的基础纹理之单张纹理
- Unity3D学习入门笔记(四)
- unity3d基础学习笔记13:网络编程
- Unity学习笔记(四)----Survival Shooter
- (c/c++学习笔记四)指针基础
- unity3d学习(四)
- Unity Shader学习笔记(一) shader的基础结构
- Unity学习笔记(一):基础入门
- 【Unity3D游戏开发学习笔记】(五)灵魂降临—Unity脚本的简单运用
- 网络是怎样连接的学习笔记(四)
- Unity3D学习笔记(四)天空、光晕和迷雾
- Win8 HTML5与JS编程学习笔记(二)
- STM32F429学习笔记(一)触屏工程Keil建立
- Unity3D学习笔记(一)GUI控件的调用
- Unity3D学习笔记(二)Unity的JavaScript基础
- Unity3D学习笔记(三)Unity的C#基础
- Unity3D学习笔记(四)Unity的网络基础(C#)
- 算法学习笔记(一)C++排序函数、映射技巧与字典树
- Unity3D学习笔记(五)C#与JavaScript组件访问的比较
- 算法学习笔记(二)字符串根据逆序排序
- 算法学习笔记(三)问题的转化与高精度运算
- Java学习笔记(一)网格袋布局
- Java学习笔记(二)事件监听器
- Java学习笔记(三)Java2D组件
- FPGA学习笔记(一)Verilog语法基础