UN5L2——协议(消息)配置
UN5L2——协议(消息)配置 选择哪种格式配置协议? 利用配置文件配置消息、数据结构、枚举的目的 减少工作量,配置一次,之后自动化生成各种语言对应的类文件 减少沟通成本,避免前后端语言不同时,手动写代码出现前后端不统一的问题 我们可以选择:xml、json、excel、自定义等等 我们可以根据自己的喜好选择选择方便配置的,好用的即可 配置的主要目的是确定类名、成员变量名 之后根据读取的这些配置信息,再通过代码按照规则自动生成对应的类文件 本课使用xml作为协议配置文件,学会xml配置,其它的方式都是大同小异的 我们主要是学习制作思路和流程,以后的项目中,大家根据自己的喜好选择即可 XML相关知识,可以在数据持久化之XML中进行学习 以xml配置为例 —— 制定配置规则 我们主要执行以下步骤: 创建xml配置文件 制定配置规则 首先,XML配置规则需要一个根节点,因此我们将<messages>作为根节点,其中包裹各个枚举、消息类和枚举的声明 123<?xml version="1.0"...
UN5L1——协议(消息)生成工具
UN5L1——协议(消息)生成工具 协议生成工具 协议生成工具,一般指:消息(协议)生成工具,就是专门用于自动化生成消息的程序,我们之前学习了: 消息的序列化和反序列化 区分消息类型 分包黏包 等等关于消息的相关知识 当需要一个新消息时,我们需要手动的按照规则去声明新的类,这部分工作费时又费力,技术含量也不高 如果前后端是统一的语言,我们按照语法声明一次就行,但是如果前后端语言不统一,比如前端用C#,后端用C++或者Java 那么前后端分开去声明,也容易造成沟通不一致,声明不统一的问题, 所以如果靠我们手动的去声明消息类是一件费时、费力、还容易出问题的事情 所以我们在商业游戏开发时,往往就需要使用协程生成工具,来帮助我们自动化的声明消息类,这样做的好处是: 提升开发效率 降低沟通成本,避免前后端消息不匹配的问题 制作协议生成工具的目的是一劳永逸,它制作完成后 它可以提升开发效率,避免协议不统一等问题,之后多了不同的语言,按照规则进行编写即可 如何制作协议生成工具 要制作工具,首先要确定需求,对于协议生成工具来说,主要需求如下 通过配置文件配置消息或数据类...
UN5——网络消息处理相关
UN5——网络消息处理相关 本系列学习内容 自定义协议生成工具 如何制作协议(消息)生成工具 协议(消息)配置 协议(消息)生成 第三方协议生成工具Protobuf Protobuf 配置规则 协议生成 协议使用 Protobuf-Net 其它 大小端模式 消息加密解密
UN4L9——UnityWebRequest高级操作
UN4L9——UnityWebRequest高级操作 本章代码关键字 1234567891011121314151617181920212223242526272829303132//下载请求属性相关new UnityWebRequest() //UnityWebRequest的构造函数,可以在实例化时就指定上传下载地址,请求类型,下载上传处理逻辑unityWebRequest.url //请求地址,从下载服务端哪个数据或者将数据上传到服务端的哪个位置unityWebRequest.method //请求类型,决定UnityWebRequest的操作,Unity内部声明了一系列的常量便于调用请求类型字符串UnityWebRequest.kHttpVerbGET //获取操作命令UnityWebRequest.kHttpVerbPOST ...
UH3——AB包的上传与下载
UH3——AB包的上传与下载 本课前置知识:C#知识补充(异步执行),文件读写(数据持久化二进制),AssetBundle,网络开发基础,IMGUI,编辑器(可选) 我们已经学习了AB包和一些热更新解决方案,但是还没有真正的体验过AB包热更新替换本地AB包相关的流程 因此我们可以结合之前学习的异步执行,文件读写,网络开发等知识,实现AB包的上传与下载,通过服务器来更新替换客户端要读取的AB包资源, 实现了 AB...
UN4L8——UnityWebRequest类
UN4L8——UnityWebRequest类 本章代码关键字 12345678910111213141516171819202122232425262728UnityWebRequest //Unity提供的一个模块化的系统类,用于构成HTTP请求和处理HTTP响应,ftp和本地资源也可以用//创建获取请求相关UnityWebRequest.Get() //获取文本或者二进制数据的网络请求UnityWebRequestTexture.GetTexture() //创建获取纹理的网络请求UnityWebRequestAssetBundle.GetAssetBundle() //创建获取AB包的网络请求//网络请求执行和状态相关unityWebRequest.SendWebRequest() //用于yield return...
UN4L7——WWWFrom类
UN4L7——WWWFrom类 WWWFrom 上节课学习了使用WWW类来下载数据,如果想要使用WWW上传数据时,就需要配合WWWFrom类进行使用了 而WWWFrom主要就是用于集成数据的,我们可以设置上传的参数或者2进制数据 当结合WWWFrom上传数据时,它主要用到的请求类型是Post,它使用Http协议进行上传处理 注意:使用WWW结合WWWFrom上传数据一般需要配合后端程序制定上传规则 WWW结合WWWFrom上传数据,需要配合后端服务器来指定上传规则 也就是说我们上传的数据,后端需要知道收到数据后应该如何处理 通过这种方式我们没办法像C#类当中完成文件的上传,但是该方式非常适合用于制作短连接游戏的前端网络层 我们可以对WWW进行二次封装,专门用于上传自定义消息给对应的Web服务器 WWWFrom类的常用方法和变量 该类当中我们主要就使用方法,相关变量很少使用,我们主要就着重讲解方法 WWWForm():构造函数 1WWWForm data = new...
UN4L6——WWW类
UN4L6——WWW类 本章代码关键字 1234567891011121314WWW //Unity提供给我们简单的访问网页的类,我们可以通过该类下载和上传一些数据new WWW() //WWW的构造函数,用于创建一个WWW请求,传入Http或者ftp地址,或者本地地址(以file://开头)www.GetAudioClip() //从下载数据返回一个音效切片AudioClip对象www.LoadImageIntoTexture() //用下载数据中的图像来替换现有的一个Texture2D对象WWW.LoadFromCacheOrDownload() //从缓存加载AB包对象,如果该包不在缓存则自动下载存储到缓存中,以便以后直接从本地缓存中加载www.assetBundle ...
UN4L5——HTTP上传数据
UN4L5——HTTP上传数据 POST必备知识 重点知识点是 Get和Post的区别 ContentType的重要类型 注意: HTTP通讯中客户端发送给服务端的Get和Post请求都需要服务端和客户端约定一些规则进行处理 比如传递的参数的含义,数据如何处理等等,都是需要前后端程序制定对应规则来进行处理的 只是我们目前没有后端开发的HTTP服务器,所以我们传递过去的参数和数据没有得到对应处理 我们目前只针对HTTP资源服务器上传下载数据进行学习,他们的通讯原理是一致的,都是通过HTTP通讯交换数据 Get和Post的区别 我们上节课学习的下载数据,主要使用的就是Get请求类型,我们在上传数据时将会使用Post请求类型 这两个请求类型他们的主要区别是: 主要用途 Get — 一般从指定的资源请求数据,主要用于获取数据 Post —...
UN4L4——HTTP下载数据
UN4L4——HTTP下载数据 HTTP下载数据 Head请求类型:主要用于获取文件的一些基础信息...