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.面向对象具有三大特征:封装性.继承性和多态性,而面向过程没有继承性和多态性,并且面向过程的封装只是封装功能,而面向对象可以封装数据和功能.所以面向对象 ...
随机推荐
- Java程序员的Golang入门指南(下)
Java程序员的Golang入门指南(下) 4.高级特性 上面介绍的只是Golang的基本语法和特性,尽管像控制语句的条件不用圆括号.函数多返回值.switch-case默认break.函数闭包.集合 ...
- Android简易实战教程--第三十六话《电话录音》
今天完成一个简单的电话录音功能,即接通电话后,立即录下自己打电话的声音.实现起来比较简单:一个服务,一个TelephonyManager.一个MediaRecorder就够了. 1.布局提供一个开启录 ...
- mysql进阶(二十九)常用函数
mysql进阶(二十九)常用函数 一.数学函数 ABS(x) 返回x的绝对值 BIN(x) 返回x的二进制(OCT返回八进制,HEX返回十六进制) CEILING(x) 返回大于x的最小整数值 EXP ...
- 2014 BDTC 参会有感
中国大数据技术大会(Big Data Technology Conference,BDTC)是目前国内最具影响.规模最大的大数据领域的技术盛会.大会的前身是Hadoop中国云计算大会(Hadoop i ...
- 详解EBS接口开发之采购订单导入
采购订单常用标准表简介 1.1 常用标准表 如下表中列出了与采购订单导入相关的表和说明: 表名 说明 其他信息 po.po_headers_all 采购订单头 采购订单号,采购类型,供应商,地点, ...
- JAVA面向对象-----抽象类注意细节
抽象类可以没有抽象方法(java.awt.*的类就是这样子操作的). 抽象类可以继承普通类与抽象类. 抽象类不能直接使用类名创建实例,但是有构造方法,构造方法是让子类进行初始化. 抽象类一定有构造方法 ...
- UIScrollView实现图片轮播器的无限滚动
简介 在现在的一些App中常常见到图片轮播器,一般用于展示广告.新闻等数据,在iOS内并没有现成的控件直接实现这种功能,但是通过UIScrollView的允许分页设置,可以实现滚动轮播的功能. 轮播原 ...
- 【Netty源码分析】发送数据过程
前面两篇博客[Netty源码分析]Netty服务端bind端口过程和[Netty源码分析]客户端connect服务端过程中我们分别介绍了服务端绑定端口和客户端连接到服务端的过程,接下来我们分析一下数据 ...
- iOS7 CookBook精彩瞬间(三)UIActivityViewController的基本使用及自定义Activity
1.基本使用 UIActivityViewController主要用于分享内容,创建activityView的方法很简单,调用下面的方法创建: [[UIActivityViewController a ...
- Cocos2D在Xcode7和iOS 9.2上IMP调用出错
大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处. 如果觉得写的不好请多提意见,如果觉得不错请多多支持点赞.谢谢! hopy ;) 原来的代码一直在Xcode6.4上和iOS 8.4上运行,没有 ...