一 网络下载
可以使用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#)相关推荐

  1. unity3d 学习笔记四 skybox(天空盒) light(光源) halo(光晕)

    Unity3D学习笔记(四)天空.光晕和迷雾 六年前第一次接触<魔兽世界>的时候,被其绚丽的画面所折服,一个叫做贫瘠之地的地方,深深印在我的脑海里.当时在艾泽拉斯大陆还不能使用飞行坐骑,试 ...

  2. 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. ...

  3. python全栈学习笔记(一)网络基础之网络协议篇

    阅读目录 一.操作系统基础 二.网络通信原理 2.1 互联网的本质就是一系列的网络协议 2.2 osi七层协议 2.3 tcp/ip五层模型讲解 2.3.1 物理层 2.3.2 数据链路层 2.3.3 ...

  4. docker学习笔记(四):docker网络模式及桥接配置

    2019独角兽企业重金招聘Python工程师标准>>> 1.docker网络模式:有如下五种: host模式(--net=host)            container模式  ...

  5. 微积分学习笔记四:空间向量基础

    1.内积和外积:设$\vec{a}=(x_{a},y_{a},z_{a}),\vec{b}=(x_{b},y_{b},z_{b})$ (1)内积:$\vec{a}\cdot \vec{b}=|\vec ...

  6. Unity3D学习笔记6——GPU实例化(1)

    文章目录 1. 概述 2. 详论 3. 参考 1. 概述 在之前的文章中说到,一种材质对应一次绘制调用的指令.即使是这种情况,两个三维物体使用同一种材质,但它们使用的材质参数不一样,那么最终仍然会造成 ...

  7. Java学习笔记(7)——Java基础之IO多线程网络思维导图

    Java面向对象学习笔记之:包括IO(字节流,字符流,节点流,处理流).线程(线程创建,线程控制,线程同步).网络(TCP Scoket,  UDP Scoket)(全屏观看Java学习笔记(7)-- ...

  8. 第四课 k8s网络基础学习-DNS和DHCP学习

    第四课 k8s网络基础学习-DNS和DHCP学习 tags: k8s网络 DNS DHCP 文章目录 第四课 k8s网络基础学习-DNS和DHCP学习 第一节 DNS介绍 第二节 DNS的linux使 ...

  9. Unity3D 学习笔记4 —— UGUI+uLua游戏框架

    Unity3D 学习笔记4 -- UGUI+uLua游戏框架 使用到的资料下载地址以及基础知识 框架讲解 拓展热更过程 在这里我们使用的是uLua/cstolua技术空间所以提供的UGUI+uLua的 ...

  10. Unity3D学习笔记8——GPU实例化(3)

    文章目录 1. 概述 2. 详论 2.1. 自动实例化 2.2. MaterialPropertyBlock 3. 参考 1. 概述 在前两篇文章<Unity3D学习笔记6--GPU实例化(1) ...

最新文章

  1. Flask 数据迁移 报错 Table 'xxx' is already defined for this MetaData instance
  2. 对搜狗输入法的个人评价
  3. OSI/RM 开放系统互联参考模型
  4. mysql 事务回滚_SQL基础丨事务处理
  5. java学习(eclipse环境的使用)
  6. Subsonic简单的语法整理
  7. php调用pentaho,Pentaho数据源和查询
  8. java实现ftp文件上传失败_用java+ftp实现文件上传的问题?
  9. 威海之恋 mv和歌词
  10. python去除图片水印api,python去除图片水印(部分可)
  11. 【LIMU-Bert论文阅读】
  12. PHP MVC框架初探
  13. MySQL8.0地理空间数据库的QGIS应用浅析
  14. 金蝶java笔试_金蝶面试题
  15. 从源代码分析DbSet如何通过ObjectStateManager管理entity lifecycle的生命周期
  16. 搜索引擎排名优化技巧有哪些
  17. vulnhub-Momentum2
  18. 关于vue嵌套路由路径斜杆/问题的探究
  19. 惠普电脑为什么打不开计算机刷题,如果无法打开HP笔记本计算机的无线开关该怎么办?惠普ProBook 4411s...
  20. EPSON 4750 打印机清理

热门文章

  1. SSH整合教程(struts2+spring3+hibernate3)(含登陆示例)
  2. form表单的两种提交方式,submit和button的用法
  3. 八数码 poj 1077 广搜 A* IDA*
  4. UML总结—时序图(Sequence Diagram)和协作图(Collaboration Diagram)
  5. MySQL笔记5:如何创建和删除索引?
  6. 下列代码之后的结果为()?
  7. 常考数据结构与算法-manacher算法
  8. jvm:类加载器和类的加载过程
  9. Thymeleaf中each标签遍历list如何获取index
  10. docker 镜像的使用和下载