- 博客(403)
- 资源 (2)
- 收藏
- 关注
原创 Unity序列化多态数组
将testarray类序列化时,多态列表personlist只转换了基类数据,子类数据没有转换。缺点:不同类型的多态数组都需要实现转换逻辑,效率低,频繁使用JsonUtility方法GC多。反序列化之后,遍历类型和数据字符串,利用反射和json反序列化,将数据还原到到多态数组中。解释:序列化时,将多态数组中的数据存放到对应类型的数组中,减少Json方法的调用。相同类型的元素存储到相同类型的数组中,避免多态。反序列化时,将对应数组中的数据存放到多态数组中。优点:功能强大,支持多态数组,使用简单。
2025-02-15 16:14:25
540
原创 Unity使用iTextSharp导出PDF-05页面事件
BaseFont对象的GetWidthPoint方法可以依据文本内容,字体大小获取文本的宽度。新建类继承PdfPageEventHelper,重写OnEndPage方法。每当一个页面结束时,底部中间显示AAA AAA。新建对象NewPageEvent进行赋值。设置页眉,页脚,添加水印等。
2025-02-11 17:24:16
1469
原创 Unity使用iTextSharp导出PDF-04图形
pdf文档页面的原点(0,0)在左下角,向上为+y,向右为+x。文档的PageSize可获取页面的宽高数值单位:像素。
2025-02-11 16:08:12
483
原创 Unity使用iTextSharp导出PDF-02基础结构及设置中文字体
1.创建一个Document对象2.使用PdfWriter创建PDF文档3.打开文档4.添加内容,5.关闭文档DateTimeNowToString。
2025-02-11 11:52:45
430
原创 日志内容保存到本地
接收日志。接收日志内容,堆栈信息,日志类型。写入内容到文件中ConcurrentQueue 是线程安全的,可从多个线程并发使用。表示必须手动重置信号的线程同步事件WaitOne 阻止当前线程,收到信号继续执行;Set 将事件设置为有信号;Reset 将事件设置无信号表示某个时刻创建和控制线程。
2024-11-25 10:53:10
220
1
原创 解决EditorGUI.PropertyField显示的字符串不受富文本影响的问题
使用GUI.skin启用标签的富文本,PropertyField不受影响。
2024-10-29 16:41:28
175
原创 Unity自定义数组在Inspector窗口的显示方式
使用版本:2021.3.6f1c1此版本的Unity已经实现数组元素添加,移除,移动功能。数据类定义一个数组,数组元素为自定义类数据类文件默认显示如下注意:不能使用自动布局api修改后显示效果如下图所示修改后如下图所示
2024-10-29 11:38:35
1012
原创 注释,换行,控制台输入输出,命名空间,省略return语句
1.单行注释//2.多行注释/*注释内容*/解释代码的作用;注释多余内容;注释不会影响代码执行。
2024-10-09 22:04:51
283
原创 改善工作流
Mono模板文件路径:%EDITOR_PATH%\Data\Resources\ScriptTemplates。每次在编辑器中进入播放模式,Unity执行两个动作,Domain Reload,Scene Reload。Mono默认脚本文件:81-C# Script-NewBehaviourScript.cs.txt。例如:FormerlySerializedAsAttribute,重命名字段,但不会丢失序列化值。#scripname#:默认文件名,创建脚本时默认显示。
2024-08-14 12:58:42
564
原创 AnimationCurve动画曲线 简单使用
获取曲线高度方法,AnimationCurve.Evaluate。可在曲线上添加关键帧,编辑曲线。循环移动Cube,Cube沿着曲线移动。水平轴表示时间,竖直轴表示曲线的高度。
2024-07-26 16:03:37
407
原创 ScriptableObject使用
结合两者特点,可将SO数据存储在JSON中,修改时,直接修改JSON文件;JSON和XML等文件格式可能很难在编辑器中修改,在Unity外,使用文本编辑都可轻松修改。多个对象共享一份So实例,多个对象共享的数据可提取出来作为so实例,减少重复,节约内存。So脚本可正常使用,但显示不正确,集合元素显示为“Type mismatch”。需要监听或触发该委托的对象可获取该So实例,监听者注册方法,广播者触发方法。,有点类似静态数据,同一个实例文件可被多个对象引用;此外可拓展So脚本,直接触发方法,方便测试。
2024-07-26 10:08:59
773
原创 通用打包 添加浏览器启动软件功能
href中指定启动的URL,注意后方URL后方要添加冒号。例如 href=“steam:” 启动steam软件。创建一个html文件,填写代码;html拖入网页,点击即可启动软件。避免在 URI 中使用空格、引号或反斜杠。uri名称为:Test.Self。使用Nsis打包,安装打包软件。
2024-05-23 15:51:58
453
原创 Nsis打包Unity Exe文件(通用)
define EXENAME “exeName” 设置exeName为发布文件内exe启动程序文件名。define SHORTCUT “快捷方式名称” 设置桌面快捷方式的中文名称。编译成功 exe文件夹内生成 exeName_Setup.exe文件。构建Unity exe(Mono)文件;使用Visula Studio打开。打开nsis编译器,拖拽nsi脚本。构建nsi文件,填充上述代码。nsi脚本放置到exe文件中。
2024-01-17 22:17:29
715
原创 Unity CG内置文件
Unity安装目录 Editor/Data/CGIncludes中后缀为cginc的文件。CG模块中使用 #include “内置文件名.cginc”引用。类似CG内置函数,提供常用的函数、结构体、变量等,提高开发效率。
2023-12-19 18:01:16
671
原创 CG 函数
与C#函数的语法一致无返回值函数 void FunctionName(参数类型 参数…){}有返回值 type FunctionName(参数类型 参数){return type}
2023-11-30 22:06:12
700
原创 Shader的组成部分Fallback
SubShader都不起作用的时候,使用Fallback确保有备有的shader起作用。不使用备用shader Fabllback Off。Fallback "Shader名字”
2023-11-21 22:26:14
164
原创 Shaderlab的组成部分SubShader
语法 Tag{“标签1"=“标签值1” “标签2"=“标签值2” }ZTest Less 小于深度缓存值通过测试。例如 ZWrite On 表示开始深度缓存。例如Queue标签确定渲染顺序。语法 渲染状态关键字 渲染状态。
2023-11-19 22:07:30
280
原创 Shaderlab属性块
Color:四个Float参数 表示rgba 参数范围0-1。Vector:四个Float参数,表示xyzw 范围没有限制。dafaultvalue:类型的默认值 必须赋值。Display Name:材质面板上显示的内容。Range(min,max):浮点数限制范围。Cube:立方体贴图,例如天空盒。参数显示在外部,可自定义调节。_Name:必须使用下划线开始。type:属性的类型。
2023-11-07 22:46:47
182
原创 Unity InputSystem 基础使用之鼠标交互
设置:Project Settings->Player->Other Settings->Configuration->Active Input Handling。参数可选:Input Manager(old),Input System Package(New),Both。InputSystem可以和旧版输入系统一起使用。
2023-09-06 21:49:08
3893
iText7 dll文件
2021-10-30
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人