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的含义是将数据添加到缓冲区
Unity3D学习笔记(四)Unity的网络基础(C#)的更多相关文章
- 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容器的网络基础
一.虚拟网桥 docker0 docker0 是 linux的虚拟网桥,守护进程通过docker0给容器提供网络连接的各种服务. 网桥是数据链路层设备,通常ip地址是网络层的设置.linux的虚拟网桥 ...
- python全栈学习笔记(二)网络基础之子网划分
阅读目录 一.ip地址基本知识 1.1 ip地址的结构和分类 1.2 特殊ip地址 1.3 子网掩码 1.4 ip地址申请 二.子网划分 2.1 子网划分概念 2.2 c类子网划分初探 2.3 子网划 ...
- python全栈学习笔记(三)网络基础之网络设备及架构介绍
- Unity3D学习笔记6——GPU实例化(1)
目录 1. 概述 2. 详论 3. 参考 1. 概述 在之前的文章中说到,一种材质对应一次绘制调用的指令.即使是这种情况,两个三维物体使用同一种材质,但它们使用的材质参数不一样,那么最终仍然会造成两次 ...
- muduo网络库学习笔记(四) 通过eventfd实现的事件通知机制
目录 muduo网络库学习笔记(四) 通过eventfd实现的事件通知机制 eventfd的使用 eventfd系统函数 使用示例 EventLoop对eventfd的封装 工作时序 runInLoo ...
- Java IO学习笔记四:Socket基础
作者:Grey 原文地址:Java IO学习笔记四:Socket基础 准备两个Linux实例(安装好jdk1.8),我准备的两个实例的ip地址分别为: io1实例:192.168.205.138 io ...
- Unity3D学习笔记8——GPU实例化(3)
目录 1. 概述 2. 详论 2.1. 自动实例化 2.2. MaterialPropertyBlock 3. 参考 1. 概述 在前两篇文章<Unity3D学习笔记6--GPU实例化(1)&g ...
- JavaSE学习笔记(2)---面向对象基础
JavaSE学习笔记(2)---面向对象基础 1.面向对象具有三大特征:封装性.继承性和多态性,而面向过程没有继承性和多态性,并且面向过程的封装只是封装功能,而面向对象可以封装数据和功能.所以面向对象 ...
随机推荐
- Bootstrap3 栅格系统-列偏移
使用 .col-md-offset-* 类可以将列向右侧偏移.这些类实际是通过使用 * 选择器为当前元素增加了左侧的边距(margin).例如,.col-md-offset-4 类将 .col-md- ...
- layout文件夹中activity_main.xml与fragment_main.xml文件的处理记录
androidSDK更新到22.6后新建立项目时在layout文件夹下面出现了activity_main.xml与fragment_main.xml,这是为了在平板开发中使用碎片,但是让不需要碎片的人 ...
- Jetty 嵌入式启动官方完整教程
网上太多了,不如直接看官方的这个全面. http://wiki.eclipse.org/Jetty/Tutorial/Embedding_Jetty 入门地址: http://wiki.eclipse ...
- Microsoft Dynamics CRM2011 更换Logo
之前操作过但没做过记录,这里记录下以防以后有需要时记不起来还有迹可循 IE收藏栏的图标,在网站根目录下的的/favicon.ico CRM网页中的Logo,替换/_imgs/crmmastheadlo ...
- Java基础---Java---IO流-----对象的序列化、管道流、RandomAccessFile、数据类型的流对象DataStream、ByteArrayStream
ObjectInputStream 对以前使用 ObjectOutputStream 写入的基本数据和对象进行反序列化. ObjectOutputStream 和 ObjectInputStream ...
- 最简单的基于DirectShow的示例:视频播放器自定义版
===================================================== 最简单的基于DirectShow的示例文章列表: 最简单的基于DirectShow的示例:视 ...
- 【java虚拟机系列】java虚拟机系列之JVM总述
我们知道java之所以能够快速崛起一个重要的原因就是其跨平台性,而跨平台就是通过java虚拟机来完成的,java虚拟机属于java底层的知识范畴,即使你不了解也不会影响绝大部分人从事的java应用层的 ...
- JDK 7中的文件操作的新特性
文件系统综述 一个文件系统在某种媒介(通常是一个或多个硬盘)上存储和组织文件.如今的大多数文件系统都是以树状结构来存储文件.在树的顶端是一个或多个根节点,在根节点一下,是文件和目录(在Windows系 ...
- 编译GDAL使用最新的HDF库配置文件
HDF库最新版本中的动态库以及目录结构都发生了变化,导致按照之前的博客进行编译GDAL时,会出问题.使用HDF4版本为HDF4-4.2.10,HDF5的版本为HDF5-1.8.12.两个库的目录结构如 ...
- Android日历视图(CalendarView)讲解-android学习之旅(三十六)
CalendarView简介 CalendarView用于显示和选择日期,如果希望监听事件的改变可以用setOnDateChangeListener()方法. CalendarView属性介绍 代码示 ...