UEDL3-6——滑动条、双滑块滑动条
UEDL3-6——滑动条、双滑块滑动条
本章代码关键字
123EditorGUILayout.Slider() //滑动条控件,可以调整在一个数值区间内调整值,需要配套一个float变量EditorGUILayout.IntSlider() //整数滑动条控件,可以调整在一个数值区间内调整整数值,需要配套一个int变量EditorGUILayout.MinMaxSlider() //双滑块滑动条控件,可以在一个数值区间内调整一个数值范围,需要配套两个float变量
滑动条控件
滑动条可以滑动调整一个float值(Slider)或者int值(IntSlider),用起来与其他UI的Slider没有差异
Slider需要配套一个float变量,IntSlider需要配套一个int变量,将对应的变量传入到它们的方法内,并接收方法的返回值
该控件可以通过SerializedProperty直接修改MonoBehaviour脚本对象的属性,使用SerializedProperty就不需要配套额外变量
滑动条控件的参 ...
UEDL3-5——开关、开关组
UEDL3-5——开关、开关组
本章代码关键字
1234EditorGUILayout.Toggle() //开关控件,会绘制一个类似于多选框的控件,用于表示开关,需要配套bool变量EditorGUILayout.ToggleLeft() //勾选项在左的开关控件,需要配套bool变量EditorGUILayout.BeginToggleGroup() //开关组控件,它可以控制多个控件的是否激活,需要配套bool变量EditorGUILayout.EndToggleGroup() //和开关组控件配套使用,与上一句一起将需要控制是否激活的控件包裹起来
开关控件
Toggle会绘制一个类似于其他GUI的多选框Toggle的控件,
它需要一个对应的bool变量来表示是否开启,需要将该变量传入到方法内,再由该变量接收本帧用户输入的值
参数一:文本标题(可选,可改为GUIContent)
参数二:当前是否开启
参数三:GUIStyle
参数四:GUILayoutOption(使用EditorGU ...
UEDL3-4——折叠、折叠组
UEDL3-4——折叠、折叠组
本章代码关键字
123EditorGUILayout.Foldout() //折叠控件,一般配合其他控件使用,它常用于控制控件的显示隐藏,需要配套bool变量EditorGUILayout.BeginFoldoutHeaderGroup() //折叠组控件,折叠控件差不多,都是控制控件的显示隐藏,需要配套bool变量EditorGUILayout.EndFoldoutHeaderGroup() //和折叠组控件配套使用,与上一句一起将需要控制显示隐藏的控件包裹起来
折叠控件
Foldout折叠控件一般配合其他控件使用,它常用于控制控件的显示隐藏,折叠控件显示隐藏的控制通过改变其对应的bool值,
进而控制if语句来决定哪些控件的绘制语句会执行,折叠控件本质是点击改变控件对应的bool值
该控件同样需要一个bool变量来表示该控件是否显示,需要将该变量传入到方法内,再由该变量接收本帧用户输入的值
参数一:当前是否显示
参数二:文本标题(可改为GUIContent)
参数三:文本标题是 ...
UH4——ILRuntime热更新解决方案
UH4——ILRuntime热更新解决方案
前置知识:C#反射,Unity跨平台原理,热更新相关知识点,AB包上传下载
ILRuntime
ILRuntime项目为基于C#的平台(例如Unity)提供了一个纯C#实现,快速、方便且可靠的IL运行时,
ILRuntime使得能够在不支持JIT的硬件环境(如iOS)能够实现代码的热更新
ILRuntime首页:介绍 — ILRuntime (ourpalm.github.io)
ILRuntimeGithub:Ourpalm/ILRuntime (github.com)
本系列学习内容
环境搭建和开发方式
Unity调用ILRuntime
Unity中启动ILRuntime
实例化ILRuntime中对象
调用ILRuntime中类对象属性
调用ILRuntime中方法
静态方法调用
成员方法调用
重载方法调用
ref / out 方法调用
ILRuntime调用Unity
更多跨域调用
委托调用
跨域继承Unity中的类
跨域继承Unity中的类的注意事项
CLR重定向和CL ...
US——Unity Shader开发入门
US——Unity Shader开发入门
Shader
Shader 就是 着色器,着色器是用来实现图像渲染的,用来替代固定渲染管线的可编辑程序
其中Vertex Shader(顶点着色器)主要负责顶点的几何关系等的运算,Pixel Shader(像素着色器)主要负责片元颜色等的计算。
着色器替代了传统的固定渲染管线,可以实现3D图形学计算中的相关计算,
由于其可编辑性,可以实现各种各样的图像效果而不用受显卡的固定渲染管线限制。
笔记代号US——即Unity Shader的缩写
本笔记包括以下系列
Shader必备概念(渲染管线与Shader的概念及其关系)
Shader必备基础(向量,线性代数,ShaderLab语法,CG语法)
Shader开发知识(光照,纹理,透明,渲染途径,阴影,完整光照计算)
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相关(尚未更新,敬请期待)
UN5L10——消息加密解密
UN5L10——消息加密解密
消息加密解密
我们在网络传输时,会把数据转换为字节数组以2进制的形式进行传输
理论上来说,如果有人截取篡改了消息,或者从前端发假消息给后端,就可能产生作弊行为
消息的加密解密,可以有效避免作弊行为的产生
加密
采用一些方式对数据进行处理后,使数据从表面上看,已经不能表达出原有的意思
别人就算获取到了你的信息,也无法知道你的内容的含义和规则
这样可以让我们的数据更加的安全,降低被篡改的可能性
解密
通过对加密过的数据采用某些方法,去还原原有数据,从而获取目标数据
这部分知识点和我们在数据持久化四部曲中——2进制学习的加密内容类似
其实就是在发消息时,对我们的消息2进制数据进行加密(一般只对消息体加密)
收到消息时,对2进制数据进行解密(一般只对消息体解密)
有各种各样的加密算法可以应用在网络通讯的消息加密中,由于加密算法完全是可以单独开一门课来讲解的内容
所以我们在这里只做了解,我们只要知道加密对于我们意义即可
当需要用到时,再去学习对应的加密算法也是可以的
加密是否是100%安全?
一定记住加密只是提高破解门槛,没有100%保密的数据
通过各种 ...
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 (github.com)
Protobuf-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的序列化和反序列化都要通过流对象来进行处理
如果是进行本地存储 则可以使用文件流
如果是进行网络传输 则可以使用内 ...