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的含义是将数据添加到缓冲区
转载于:https://www.cnblogs.com/aiwz/p/6154275.html
Unity3D学习笔记(四)Unity的网络基础(C#)相关推荐
- unity3d 学习笔记四 skybox(天空盒) light(光源) halo(光晕)
Unity3D学习笔记(四)天空.光晕和迷雾 六年前第一次接触<魔兽世界>的时候,被其绚丽的画面所折服,一个叫做贫瘠之地的地方,深深印在我的脑海里.当时在艾泽拉斯大陆还不能使用飞行坐骑,试 ...
- Unity3D学习笔记3——Unity Shader的初步使用
文章目录 1. 概述 2. 详论 2.1. 创建材质 2.2. 着色器 2.2.1. 名称 2.2.2. 属性 2.2.3. SubShader 2.2.3.1. 标签(Tags) 2.2.3.2. ...
- python全栈学习笔记(一)网络基础之网络协议篇
阅读目录 一.操作系统基础 二.网络通信原理 2.1 互联网的本质就是一系列的网络协议 2.2 osi七层协议 2.3 tcp/ip五层模型讲解 2.3.1 物理层 2.3.2 数据链路层 2.3.3 ...
- docker学习笔记(四):docker网络模式及桥接配置
2019独角兽企业重金招聘Python工程师标准>>> 1.docker网络模式:有如下五种: host模式(--net=host) container模式 ...
- 微积分学习笔记四:空间向量基础
1.内积和外积:设$\vec{a}=(x_{a},y_{a},z_{a}),\vec{b}=(x_{b},y_{b},z_{b})$ (1)内积:$\vec{a}\cdot \vec{b}=|\vec ...
- Unity3D学习笔记6——GPU实例化(1)
文章目录 1. 概述 2. 详论 3. 参考 1. 概述 在之前的文章中说到,一种材质对应一次绘制调用的指令.即使是这种情况,两个三维物体使用同一种材质,但它们使用的材质参数不一样,那么最终仍然会造成 ...
- Java学习笔记(7)——Java基础之IO多线程网络思维导图
Java面向对象学习笔记之:包括IO(字节流,字符流,节点流,处理流).线程(线程创建,线程控制,线程同步).网络(TCP Scoket, UDP Scoket)(全屏观看Java学习笔记(7)-- ...
- 第四课 k8s网络基础学习-DNS和DHCP学习
第四课 k8s网络基础学习-DNS和DHCP学习 tags: k8s网络 DNS DHCP 文章目录 第四课 k8s网络基础学习-DNS和DHCP学习 第一节 DNS介绍 第二节 DNS的linux使 ...
- Unity3D 学习笔记4 —— UGUI+uLua游戏框架
Unity3D 学习笔记4 -- UGUI+uLua游戏框架 使用到的资料下载地址以及基础知识 框架讲解 拓展热更过程 在这里我们使用的是uLua/cstolua技术空间所以提供的UGUI+uLua的 ...
- Unity3D学习笔记8——GPU实例化(3)
文章目录 1. 概述 2. 详论 2.1. 自动实例化 2.2. MaterialPropertyBlock 3. 参考 1. 概述 在前两篇文章<Unity3D学习笔记6--GPU实例化(1) ...
最新文章
- Flask 数据迁移 报错 Table 'xxx' is already defined for this MetaData instance
- 对搜狗输入法的个人评价
- OSI/RM 开放系统互联参考模型
- mysql 事务回滚_SQL基础丨事务处理
- java学习(eclipse环境的使用)
- Subsonic简单的语法整理
- php调用pentaho,Pentaho数据源和查询
- java实现ftp文件上传失败_用java+ftp实现文件上传的问题?
- 威海之恋 mv和歌词
- python去除图片水印api,python去除图片水印(部分可)
- 【LIMU-Bert论文阅读】
- PHP MVC框架初探
- MySQL8.0地理空间数据库的QGIS应用浅析
- 金蝶java笔试_金蝶面试题
- 从源代码分析DbSet如何通过ObjectStateManager管理entity lifecycle的生命周期
- 搜索引擎排名优化技巧有哪些
- vulnhub-Momentum2
- 关于vue嵌套路由路径斜杆/问题的探究
- 惠普电脑为什么打不开计算机刷题,如果无法打开HP笔记本计算机的无线开关该怎么办?惠普ProBook 4411s...
- EPSON 4750 打印机清理
热门文章
- SSH整合教程(struts2+spring3+hibernate3)(含登陆示例)
- form表单的两种提交方式,submit和button的用法
- 八数码 poj 1077 广搜 A* IDA*
- UML总结—时序图(Sequence Diagram)和协作图(Collaboration Diagram)
- MySQL笔记5:如何创建和删除索引?
- 下列代码之后的结果为()?
- 常考数据结构与算法-manacher算法
- jvm:类加载器和类的加载过程
- Thymeleaf中each标签遍历list如何获取index
- docker 镜像的使用和下载