UEDL3-5——开关、开关组
UEDL3-5——开关、开关组 本章代码关键字 1234EditorGUILayout.Toggle() //开关控件,会绘制一个类似于多选框的控件,用于表示开关,需要配套bool变量EditorGUILayout.ToggleLeft() //勾选项在左的开关控件,需要配套bool变量EditorGUILayout.BeginToggleGroup() //开关组控件,它可以控制多个控件的是否激活,需要配套bool变量EditorGUILayout.EndToggleGroup() //和开关组控件配套使用,与上一句一起将需要控制是否激活的控件包裹起来 开关控件 Toggle 会绘制一个类似于其他GUI的多选框 Toggle 的控件, 它需要一个对应的 bool 变量来表示是否开启,需要将该变量传入到方法内,再由该变量接收本帧用户输入的值 参数一:文本标题(可选,可改为...
UEDL3-4——折叠、折叠组
UEDL3-4——折叠、折叠组 本章代码关键字 123EditorGUILayout.Foldout() //折叠控件,一般配合其他控件使用,它常用于控制控件的显示隐藏,需要配套bool变量EditorGUILayout.BeginFoldoutHeaderGroup() //折叠组控件,折叠控件差不多,都是控制控件的显示隐藏,需要配套bool变量EditorGUILayout.EndFoldoutHeaderGroup() //和折叠组控件配套使用,与上一句一起将需要控制显示隐藏的控件包裹起来 折叠控件 Foldout 折叠控件一般配合其他控件使用,它常用于控制控件的显示隐藏,折叠控件显示隐藏的控制通过改变其对应的bool值, 进而控制 if 语句来决定哪些控件的绘制语句会执行,折叠控件本质是点击改变控件对应的bool值 该控件同样需要一个 bool 变量来表示该控件是否显示,需要将该变量传入到方法内,再由该变量接收本帧用户输入的值 参数一:当前是否显示 参数二:文本标题(可改为...
UH4——ILRuntime热更新解决方案
UH4——ILRuntime热更新解决方案 前置知识:C#反射,Unity跨平台原理,热更新相关知识点,AB包上传下载 ILRuntime ILRuntime 项目为基于 C# 的平台(例如Unity)提供了一个纯 C# 实现,快速、方便且可靠的 IL 运行时, ILRuntime 使得能够在不支持 JIT 的硬件环境(如 IOS)能够实现代码的热更新 ILRuntime 首页:介绍 — ILRuntime (ourpalm.github.io) ILRuntime Github:Ourpalm/ILRuntime (github.com) 本系列学习内容 环境搭建和开发方式 Unity调用ILRuntime Unity中启动ILRuntime 实例化ILRuntime中对象 调用ILRuntime中类对象属性 调用ILRuntime中方法 静态方法调用 成员方法调用 重载方法调用 ref / out...
US——Unity Shader开发入门
US——Unity Shader开发入门 Shader Shader 就是 着色器,着色器是用来实现3D物体在图像上渲染的,用来替代固定渲染管线的可编辑程序 其中 Vertex Shader(顶点着色器)主要负责顶点的几何关系等的运算,Pixel Shader(像素着色器)主要负责片元颜色等的计算。 着色器替代了传统的固定渲染管线,可以实现3D图形学计算中的相关计算, 由于其可编辑性,可以实现各种各样的图像效果而不用受显卡的固定渲染管线限制。 笔记代号 US —— 即 Unity Shader 的缩写 注:此课程所讲解的渲染管线是 Unity 的 内置渲染管线,关于内置渲染管线,可见:使用内置渲染管线 - Unity 手册 本笔记包括以下系列: Shader 必备概念(渲染管线与 Shader 的概念及其关系) Shader 必备基础(向量,线性代数,ShaderLab 语法,CG 语法) Shader 开发知识(光照,纹理,透明,渲染路径,阴影,完整光照计算,高级纹理,屏幕后处理,深度与法线纹理) Shader...
UM——Unity移动平台相关
UM——Unity移动平台相关 前置知识:C#、Unity前三部曲、UI四部曲、数据持久化 Unity移动开发 在没有学习 Unity 移动开发知识前,我们制作的 Unity 程序只能在自己的 PC 上运行,而不能在手机上运行 在学习移动开发知识后,我们可以能够应对日常开发中移动平台的相关需求,让我们的 Unity 程序在移动平台上运行 需要熟练掌握: Android 开发相关 将 Unity 开发的内容进行 Android 打包 能够进行 Android 端调试 能够按照套路接入各种SDK 本系列学习内容 Android相关 Android开发基础 Java语法入门 Unity 和 Android 交互 Android SDK 接入(以百度定位SDK为例) Kotlin语法入门(没讲) IOS相关(尚未更新,敬请期待)
UN5L9——大小端模式
UN5L9——大小端模式 本章代码关键字 1234BitConverter.IsLittleEndian //判断当前是否为小端模式IPAddress.HostToNetworkOrder() //转换为网络字节序,相当于就是转为大端模式IPAddress.NetworkToHostOrder() //网络字节序转为本机字节序,本机字节序为小端模式,就转换为小端模式Array.Reverse() //数组颠倒顺序,可用于从大小端模式与本机不一致的远端接收到的字节数组进行转换 大小端模式 大端模式 是指数据的高字节保存在内存的低地址中,而数据的低字节保存在内存的高地址中 这样的存储模式有点儿类似于把数据当作字符串顺序处理,地址由小向大增加,数据从高位往低位放 它更符合人类的阅读习惯 小端模式 是指数据的高字节保存在内存的高地址中,而数据的低字节保存在内存的低地址中 何为高低字节: 我们阅读数字时,一般是从左往右看,看到数字的位的顺序就是从高到低,例如:127 127...
UN5L8——Protobuf-Net
UN5L8——Protobuf-Net 回顾Protobuf Protobuf全称是protocol-buffers(协议缓冲区),是谷歌提供给开发者的一个开源的协议生成工具 它的主要工作原理和我们之前做的自定义协议工具类似,只不过它更加的完善,可以基于协议配置文件生成 C++、Java、C#、Objective-C、PHP、Python、Ruby、Go等等语言的代码文件 我们之前学习了如何使用它,已经能够使用Protobuf来配置协议,生成协议,使用协议了 Protobuf-Net 早期的Protobuf并不支持C#,所以国外大神Marc Gravell在Protobuf的基础上进行了.net环境下的移植,并发布到了GitHub, 让我们可以基于Protobuf的规则进行C#的代码生成,对象的序列化和反序列化 Protobuf-Net的Github地址:protobuf-net/protobuf-net: Protocol Buffers library for idiomatic .NET...
UN5L7——Protobuf协议使用
UN5L7——Protobuf协议使用 本章代码关键字 1234Google.Protobuf //ProtoBuf相关命名空间,该命名空间内有为IMessage的WriteTo方法的拓展方法,使得流可以传入到方法内iMessage.Writeto() //所有的ProtoBuf生成的消息类都继承自IMessage,因此可以调用该方法将自己序列化写入到流内iMessage.ToByteArray() //在Google.Protobuf命名空间中为IMessage拓展的方法,该方法可以直接将类对象序列化为字节数组messageParser<>.ParseFrom() //所有ProtoBuf消息类都有MessageParser<>静态变量,可通过Parse属性调用,它可以将流中的数据或者字节数组反序列化 Protobuf协议使用 Protobuf的序列化和反序列化都要通过流对象来进行处理 如果是进行本地存储 则可以使用文件流 如果是进行网络传输...
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 通过配置生成脚本文件,主要使用的就是...