UN5L6——Protobuf协议生成
UN5L6——Protobuf协议生成 本章代码关键字 1234Process //进程类,可以运行某个可执行程序,如同在cmd或者powershell运行一个程序那样process.StartInfo.FileName //可执行程序所在路径及其文件名process.StartInfo.Arguments //可执行程序执行时要输入的参数process.Start() //运行可执行程序 利用protoc.exe编译器生成脚本文件 打开cmd或powershell窗口(如果你使用VSCode,你可以直接使用它的终端) 进入protoc.exe所在文件夹(输入cd protoc.exe所在路径,或者可以直接将exe文件拖入cmd窗口中) 输入转换指令:protoc.exe -I=配置路径 --csharp_out=输出路径 配置文件名 注意:路径不要有中文和特殊符号,避免生成失败 Protobuf 通过配置生成脚本文件,主要使用的就是...
UN5L5——Protobuf配置规则
UN5L5——Protobuf配置规则 本章代码关键字 12345678910111213141516171819202122232425262728293031323334353637383940// 注释方式1/* 注释方式2 可多行注释*/syntax = "proto3"; //决定了proto文档的版本号,如果不设置将默认是proto2package namespaceName //设置命名空间message messageName { } //声明消息类//字段说明示例成员类型 字段名 = 唯一编号;//成员类型//浮点数float //C# - floatdouble //C# - double//变长编码整数int32 //C# - int(不太适用于表示负数,如要负数请使用sint32)int64 ...
UEDL3-3——对象关联、各类型输入
UEDL3-3——对象关联、各类型输入 本章代码关键字 123456789101112EditorGUILayout.ObjectField() //在编辑器窗口上添加对象关联控件,可以关联一个Unity对象,需要配套一个Object变量EditorGUILayout.IntField() //在编辑器窗口上添加输入int值控件,需要配套一个Object变量EditorGUILayout.LongField() //在编辑器窗口上添加输入long值控件,需要配套一个long变量EditorGUILayout.FloatField() //在编辑器窗口上添加输入float值控件,需要配套一个float变量EditorGUILayout.DoubleField() //在编辑器窗口上添加输入double值控件,需要配套一个double变量EditorGUILayout.TextField() ...
UEDL3-2——枚举、选择、按下按钮
UEDL3-2——枚举、选择、按下按钮 本章代码关键字 1234EditorGUILayout.EnumPopup() //单选枚举选择,将枚举作为选项一样可以选择,需要配套一个枚举变量EditorGUILayout.EnumFlagsField() //多选枚举选择,枚举作为多选项,但是枚举需要声明与多选对应的搭配值,否则无法准确转换枚举值,需要配套枚举变量EditorGUILayout.IntPopup() //整数选择控件,由字符串数组决定选项显示内容,整数数组决定选项的值,选中哪个选项返回哪个值EditorGUILayout.DropdownButton() ...
UEDL3-1——EditorGUI的文本、层级和标签、颜色
UEDL3-1——EditorGUI的文本、层级和标签、颜色 本章代码关键字 12345//以下控件都可以使用EditorGUI绘制,但是需要自己指定位置与大小!EditorGUILayout.LabelField() //在窗口上添加文本控件,可以显示标题和内容EditorGUILayout.LayerField() //在窗口上添加选择哪个层级(Layer)的选项控件,需要配套一个int变量EditorGUILayout.TagField() //在窗口上添加选择哪个标签(Tag)的选项控件,需要配套一个字符串变量EditorGUILayout.ColorField() ...
UEDL3——EditorGUI相关
UEDL3——EditorGUI相关 EditorGUI & EditorGUILayout EditorGUI 类似 GUI,是一个主要用于绘制编辑器拓展 UI 的工具类 它提供了一些 GUI 中没有的API,主要是 编辑器功能中会用到的一些 特殊控件 我们经常会将 EditorGUI 和 GUI 混合使用 来制作一些编辑器拓展功能,但是由于更多时候我们会用到自动布局功能 因此我们接下来着重讲解 EditorGUILayout 中的功能,EditorGUI 和它的区别仅仅是需要自己设置位置而已 以下窗口中的控件相关绘制 逻辑处理相关的内容,EditorGUI 相关的控件,同样还是需要在 OnGUI() 当中进行实现 才能被显示出来 GUILayout 相关知识点回顾:UG1L10——GUILayout 关于 EditorGUILayout 的更多控件详细内容:EditorGUILayout - Unity 脚本...
UEDL2——自定义窗口拓展
UEDL2——自定义窗口拓展 本章代码关键字 12345678910111213141516171819202122EditorWindow //编辑器窗口基类,所有的编辑器窗口类都必须继承它//继承EditorWindow的窗口类,会自带一些事件回调函数,当触发对应事件时会自动进入OnHierarchyChange() { } //当场景中的层次结构(Hierarchy)发生变化时调用OnFocus() { } //当窗口获得焦点时调用OnLostFocus() { } //当窗口失去焦点时调用OnProjectChange() { } //当项目资源发生变化时调用OnInspectorUpdate() { } ...
UEDL1——自定义菜单栏拓展
UEDL1——自定义菜单栏拓展 本章代码关键字 12[MenuItem()] //为菜单栏、Hierarchy窗口(GameObject页签内)、Project窗口(Assets页签内)、以及某个脚本的右键菜单添加页签[AddComponentMenu()] ...
UED——Unity编辑器拓展
UED——Unity编辑器拓展 前置知识:C#,Unity前三部曲,IMGUI,UGUI Unity编辑器拓展 学习 Unity 编辑器拓展的主要用处就是制作开发工具,提升我们的游戏开发效率 我们可以把一些常用的工作流程工具化 数据可视化 (在 Scene 窗口实时查看数据表现) 辅助功能开发 (对资源进行二次处理) 游戏工具开发(地图编辑器、数据编辑器、技能编辑器等等) 等等 Unity 编辑器拓展相关更多的只是一些辅助性功能,编辑器开发的重点是要更具游戏需求来开发提升效率的辅助工具 比如:技能编辑器、地图编辑器、剧情编辑器、关卡编辑器 等等,开发这些工具的难点其实不在于编辑器拓展相关API的使用 而是在于具备的编程能力,如果能够独立开发出游戏中的这些相关系统,那么编辑器开发会是一门信手拈来的技能 编辑器拓展的更多内容: UnityEditor - Unity 脚本 API(中文文档,缺少对其命名空间下各个类的解释) Unity - Scripting API: UnityEditor...
UN5L4——Protobuf
UN5L4——Protobuf Protobuf Protobuf全称是protocol-buffers(协议缓冲区),是谷歌提供给开发者的一个开源的协议生成工具 它的主要工作原理和我们之前做的自定义协议工具类似,只不过它更加的完善,可以基于协议配置文件生成 C++、Java、C#、Objective-C、PHP、Python、Ruby、Go等等语言的代码文件 它是商业游戏开发中常常会选择的协议生成工具,有很多游戏公司选择它作为协议工具来进行网络游戏开发 因为它通用性强,稳定性高,可以节约出开发自定义协议工具的时间 protocol-buffers官网:Protocol Buffers Documentation (protobuf.dev) Protobuf的使用流程 下载对应语言要使用Protobuf相关内容 根据配置规则编辑协议配置文件 用Protobuf编译器,利用协议配置文件生成对应语言的代码文件 将代码文件导入工程中进行使用 下载Protobuf相关内容——生成DLL文件 在官网中前往下载地址,protocol-buffers官网:Protocol...