- 博客(44)
- 资源 (3)
- 收藏
- 关注
原创 Unity中文件上传以及下载,获取下载文件大小的解决方案
因此后续就改成用Unity自带的UnityWebRequest类了,使用自带的也会有多占用内存的现象但是比该插件就会好很多,例如加载100m左右的ab能够加载12-15次时,才有可能会出现内存溢出的问题,如果有些数据释放的及时,甚至能加载更多次。继续说原因,在Webgl端使用这个插件会有很明显的内存被大量占用,并且有一定的内存泄露,之前有一个项目,加载场景AB包,提一嘴本身每个平台的AB大小都是不一样的,虽然没比较过所有平台的,但是Webgl的AB包会比PC和移动端的大很多。
2025-04-27 00:01:55
1474
原创 Unity中数据储存
这部分数据常见的保存格式,txt,csv,xml,json以及Unity提供的跨平台的PlayerPrefs格式,根据自己项目的需求保存即可,如果本身不需要外部修改的数据,那么完全可以使用Unity提供的PlayerPrefs格式保存,不仅存储效率快,而且不需要考虑平台问题,当然其他格式也可以,只不过需要自己编写管控了。该插件提供了所有平台的存储功能,虽然以及一些序列化的方法,虽然像二进制序列化等功能性能不是很好,而且压缩性也一般,但胜在这个插件非常全面,和存储相关的功能,几乎都有。
2025-04-26 23:13:59
281
原创 Unity中数据和资源加密(异或加密,AES加密,MD5加密)
MD5码是个很常见的东西,特别是在做资源热更新的,很多公司会对给资源文件一个MD5编码,用作版本管理,判断这个编码是否一致,一致就不更新,不一致就更新资源。因此加密代码和解密代码一致,但是根据密钥可以是 单个byte,或者 多个byte,这就导致出现了,更复杂的加密方式,例如对明文数据索引的取余等等。在项目开发中,始终会涉及到的一个问题,就是信息安全,在调用接口,或者加载的资源,都会涉及安全问题,因此就出现了各种各样的加密方式。因此很多工程师会整理一个通用的加密工具类,因此我这边也同样整理了一个工具脚本。
2025-04-25 19:18:48
516
原创 Unity中打可选择的AssetBundle,以及URP中加载AssetBundle包Shader丢失问题显示洋红色的解决方案
1、制作可选择某个或某些资源进行打AssetBundle的编辑器扩展2、解决URP渲染管线加载AB包,Shader丢失,显示洋红色的解决方案
2025-04-24 01:55:25
354
原创 Unity中简单的打包AssetBundle并加载
代码编写好后,接着就是设置需要打AB的资源,我们需要在Assets文件夹中选择资源,然后在Inspector面板的最下方就有设置AB包名称和后缀的地方,具体设置的名称,自行定义(点击下拉后点击new,就可以自行定义名称了,后缀也是)等待打包完成之后,到设置的文件夹下,就能看到你设置名称和后缀的ab文件了,除了该文件还有个manifest后缀的文件,这个是ab包的配置,实际记载时可以不需要用到,因此如果资源更新也只要更新ab文件即可。》,该插件在Github上,下载导入就可以使用,我这边就不做过多的介绍了。
2025-04-24 00:50:56
1435
原创 Unity中基于第三方插件扩展的对于文件流处理的工具脚本,以及基于第三方插件的跨平台文件浏览器
文件处理工具,基于Easy Save的文件操作,以及Trilib提供的文件浏览器功能编写的整合工具脚本有提供涉及到的测试插件
2025-04-23 01:04:56
130
原创 Unity发布Webgl自适应浏览器窗口
1、蓝色框里面的内容,也就是这个if判断中是在移动端打开网页时执行的代码,默认Unity发布的Webgl是不支持移动端的,其实主要是UI的适配问题以及一些特殊功能可能不支持,但是如果没有特殊功能,不考虑UI布局适配的话,在移动设备上也能正常运行,但是每次在移动设备上运行就会有一行提示,就是蓝色框中的内容,如果要让他不出现提示,只需要把这行代码注释掉即可。到此自适应浏览器就完成了,但是就会有个问题,不可能每次发布一个版本就需要手动去修改一次,那么除此之外有没有发布的时候就已经修改好的呢,也有办法解决。
2025-04-22 02:25:26
1195
原创 Unity的Webgl端编写jslib常用功能,监听网页关闭刷新,判断是移动端还是pc端打开web,存储数据到Storage等功能
Webgl的扩展功能:1、“监听网页关闭或刷新”2、“获取当前设备时PC还是移动端”3、“获取当前网址”4、“获取LocalStorage的数据”5、“保存数据到LocalStotage”6、“获取SessionStorage的数据”7、“保存数据到SessionStorage”8、“将文本拷贝到剪贴板”9、“关闭当前网页”10、“打开网页”
2025-04-21 22:42:08
216
原创 Unity中支持PC、移动端和Webgl端的复制文本到剪贴板
因此将文本复制到剪贴板这个功能就无效,需要我们自己写js代码放到Unity中调用(本篇文章,只写复制文本的方法,后续会在其他文章中整理其他常用功能的js代码,最后会整理出一个完整的Webgl的工具脚本),好在新版本的Unity已经支持js代码了。这里的功能是将文本复制到剪贴板,那么js代码就是常用的复制功能即可,但是需要注意的是Unity传输到js的内容需要进行转换,因为两种代码编译方式不同,如果不转换的话会导致乱码。在jslib文件中首先需要声明一个对象,并且将全局对象添加到Unity的全局库中。
2025-04-19 00:09:41
1008
原创 Unity中日志管理脚本
但是在研发的时候为了方便测试肯定会大量的增加日志输出,这就导致发布时要取消日志输出就需要一个个删掉或注释掉,发布完还得去取消注释或者增加日志,这么做就会特别麻烦。日志优化前提,在我们制作的具体项目中会有很多日志的输出,但是到最后发版的时候又需要关掉一些普通的信息日志,只需要输出警告和错误日志即可。下面就直接放上我整理的日志脚本,可能后续会碰到问题再次优化,如果有优化再更新到文章中。同时需要注意,大量输出日志,会增加性能的消耗,并且还会增加大量的GC,因此在实际发布时,尽可能的减少日志输出。
2025-04-18 00:21:36
113
原创 Unity中使用Newtonsoft.Json优化脚本
解决方案在之前的文章中已经提及,这边就不重复了,后面直接放完整的代码,但是需要注意的是,使用该工具脚本,一定需要先导入Newtonsoft.Json,导入流程可以查看《3、再name中输入com.unity.nuget.newtonsoft-json,在Version中输入3.2.1(这个版本是目前最新版本)然后点击Add等待导入即可。在Unity中序列化一些Unity都有的数据类型时会经常碰到一些问题,就例如我之前那票文章提到的问题,《因此单独整理成了一个工具类,后续如果有增加,再更新文章笔记。
2025-04-17 23:58:39
308
原创 Unity中预制体烘焙光照贴图(进阶篇)
首先本篇是对之前的一篇文章内容进行优化以及增加了部分功能,之前的文章《Unity中对预制体烘焙光照贴图,在其他Scene中使用或者动态生成带光照贴图的预制体》本篇主要会说两个方面的东西:第一介绍进阶的脚本工具第二整理下以及标注下遇到的问题和可能会碰到的问题先说第一点,原先的预制体烘培脚本,烘培没有进度条,全局的环境光照设置也没有,以及其他的一些设置和优化,因此这次的更新都给加上了。下面的图分别是原先的脚本界面,已经现在的脚本烘培前中后的界面截图,另外烘培的设置例如勾选静态等本篇文章就不重复介绍了,如果需要知
2025-04-17 00:31:19
283
原创 Unity中通用的单例模板
然而如果多个类需要使用单例,我们不会在每个类里面都写一遍单例部分的代码,因此就有了编写通用的单例模板类的原因,那么需要有单例的类,只要继承单例模板类,就拥有了单例类的特性,同样的也会有缺陷,就比如构造函数没办法改成私有或者受保护的,但不妨碍他的使用便利性。同样的Unity中如果需要挂载在Unity的GameObject上面,那么就需要继承Unity中独有的MonoBehaviour,并且如果改对象切换场景不删除的话还需要调用DontDestroyOnLoad。1、不继承MonoBehaviour的单例。
2025-04-16 13:14:20
81
原创 Unity中使用Newtonsoft.Json序列化优化,序列化Vector3,Quaternion等类型,以及解析ScriptableObject类型的数据
失败的原因,是因为Json的解析,默认是去new一个该类型的对象,然后赋值,但是继承了UnityEngine.ScriptableObject类型的类,没办法通过new的方式创建对象,导致的失败,该类型需要通过UnityEngine.ScriptableObject.CreateInstance方式创建。我们创建了这个类型后,具体的使用,只需要解析Json时,new一个该类型当作参数传入即可,代码示例如下:(下面示例中TestOS是继承了UnityEngine.ScriptableObject类型的类)
2025-04-16 00:10:57
894
原创 三维重构Colmap的基础使用
4、 特征匹配:接下去是特征匹配,操作也很简单,点击Processing->Feature matching,默认的有几种匹配方式,这边我们选择第一种Exhaustive就行,这种是对每张图进行两两比较,参数我们这边也用默认的(感兴趣的可以自行修改尝试),下面直接点击Run按钮等待完成。1、 准备工作:下载编译好的文件,如果电脑已经配置了CUDA可以下载没有CUDA的包,如果没有配置下包含CUDA的包,深度重构需要用到CUDA的数据,下载完成后打开COLMAP.bat文件。已经编译完成的colmap。
2025-04-15 12:02:00
585
原创 Unity的Webgl端使用Microphone
另外一种是直接扩展编写Microphone类,就是编写支持Webgl的jslib,然后自己实习一个Webgl平台的Microphone同名类型,里面去调用jslib中实现的功能,复刻原Microphone类中所有内容。同时在GitHub上其实也有开发人员扩写了Microphone,只不过功能可能没有上面Microphone Pro插件的功能和支持的浏览器多,但区别在于Unity商城的插件需要付费购买,但是GitHub的插件是可以免费使用。支持的浏览器:火狐浏览器、谷歌浏览器、 微软、苹果Safari。
2025-04-15 11:58:24
392
原创 Unity支持全平台的Newtonsoft.Json.dll库
其实我前面说的第一种情况的提供库,官方合并该库的出了新的分支,支持全平台的Json库,也一直在迭代更新。第一种情况:在GitHub上有个国外的编写的库,jillejr/newtonsoft-json-for-unity/ 这个库支持IL2CPP跨平台编译的,只需要导入这个库即可使用。第一种情况,Windows的IL2CPP跨平台编译,常见的Json是通过反射机制实现的,但IL2CPP是不支持反射的,导致在编辑器中可以正常使用,但是发布后就一堆Json的报错。
2025-04-14 22:14:11
858
原创 UE4理论介绍梳理
④ 提前深度测试:检测每个片元的深度,剔除不需要渲染的片元来减轻片元着色器的消耗,但可能会和透明测试产生冲突,因此有的GPU会判断是否有这个冲突,如果有就跳过,这个检测是有消耗的,因此这个流程不是所有显卡都支持。说明:这边文档是以前整理的,当时写在word中,因此有些颜色标记没有了,这边我会直接把源文件添加到附件,以便观看,下面内容都是介绍UE的大框架的,虽然现在新版本引擎有一定改动,但是大方向应该变得不多,主要给新手,即将面试的同学观看学习知识。这种做法当半透明物体叠加的时候,可能会出现不好的效果。
2025-04-14 15:01:31
892
原创 Unity获取设备唯一Code以及内网Ip外网Ip等
5、获取外网Ip(本地没法获取外网IP,需要访问专门提供访问者IP的外网地址获取,以下脚本中访问的是亚马逊的地址,也可自己编写,修改放问地址)3、获取设备唯一标识码(利用UnityEngine的SystemInfo类)1、获取设备名称(利用UnityEngine的SystemInfo类)2、获取设备模型(利用UnityEngine的SystemInfo类)6、获取网卡MAC地址列表。
2023-10-08 17:01:33
1110
原创 当Cave项目中需要通过手柄的触摸板或其他除头盔的控制方式来控制镜头旋转和移动时的解决方案
位置的跟随方便解决,相应的旋转视角的跟随也已经给了个方法进行设置。关闭相机跟随头盔旋转的也有对应的方法,下面的函数就是关闭相机旋转跟随的,参数第一个是需要关闭的哪个相机,第二个就是是否关闭。当Cave项目中需要通过手柄的触摸板或其他除头盔的控制方式来控制镜头旋转和移动时的解决方案。相机属性中CameraOptions中有下面这个Lock to Hmd这个属性,将这个勾取消相机就不会再跟随头盔移动和旋转了。先说下Unity里的SteamVR,控制开关相机跟随头盔位置和旋转朝向的变量属性或者方法。
2023-10-08 16:49:45
232
原创 UE4中打包后通过FFileHelper::LoadFileToStringArray读写的CSV数据会读写不到的原因之一
除了这种读写之外,还有种通过FFileHelper::LoadFileToStringArray来读写,是将CSV文件复制到对应的文件夹下,文件保存还是CSV并不会创建对应的uasset文件。我们知道现在UE4中读写CSV表格数据最方便的是对应表格第一行编写完对应的结构体后,将CSV表格文件拖入项目中能创出对应的uasset文件,然后能直接获取里面对应单元格的数据。这是因为CSV文件他不会被打包进应用中。注意具体复制到什么路径,还需要看你编写的代码读取的是什么路径下的文件,将资源复制到对应的文件地址。
2023-10-08 16:41:42
289
原创 UE4中利用Console节点清除屏幕的Debug输出等用法合集
反之需要在VR头盔中显示的就不用加这个节点,但如果在之前已经用了stereo off了 后面需要在VR头盔里显示的level时也会出现头盔里不出现的情况,这时再调用一次Command里填stereo on就可以了。调用Actor函数:ke+类名+函数名+参数(知道类时可以用这个),ke函数名+参数(不知道类时可以用这个,但这个会遍历所以actor,直到找到这个函数并执行)动态设置分辨率可以这么做,(项目设置里也可以设置,不过这里不多说)调用关卡蓝图函数:ce+函数名+参数。一:清除屏幕上的Debug输出。
2023-10-08 16:37:36
335
原创 Unity中对字符串的操作,导入导出文本文件,手机号,邮箱地址,网页链接等字符串判断是否合规
很多项目中都会碰到,判断手机号是否合法,邮箱是否合法,网页地址是否合法,文本文件加载以及导出等等,由于使用到的地方实在太多了,每次重新编写方法麻烦,因此我整理了一个工具类脚本,里面提供了多种常用的字符串操作的方法。3、异步加载远端文本文件(需要扩写异步Task.GetAwaiter(),列表最后提供了第三方的重写的GetAwaiter,经过测试能满足大部分async方法的使用)21、从输入字符串中的第一个字符开始,用替换字符串替换指定的正则表达式模式的所有匹配项。15、判断输入的字符串是否是一个超链接。
2023-07-25 01:16:05
463
原创 Unity发布IL2CPP的Windows包不支持Newtonsoft.Json.dll
根据图片中提供的搜索最终找到支持IL2CPP的Newtonsoft.Json库,添加库需要在项目工程的Packages/manifest.json文件中添加引用库即可,打开项目后会自动导入对应json库,并且可以在Package Manager中查看到,并且如果有新版本可以在PackageManager中直接更新。需要在manifest.json中添加的内容如下。制作的项目开始正式发布测试,因此打包IL2CPP后处理的Windows包后,运行发现运行没反应,查看日志后发现是Json报错了。
2023-07-20 23:31:03
342
原创 Unity C# 使用IO流对文件的常用操作
大部分项目中都会有大量的对文件操作需求,因此我使用IO流整理编写了一些常用的对文件操作方法,需要注意因为使用IO流操作,因此不支持读取远端文件,同时也不支持前面提及的某些平台或者某些路径中的文件操作不支持。IO流是C#语言中对文件操作常用的方式,但在Unity跨平台开发中需要注意有些平台不支持IO,有些平台的只读文件不支持支持操作,例如安卓平台的读取StreamingAsset文件夹等。8、获取文件夹下除指定类型外的所有文件路径。13、删除文件夹下除指定后缀的文件。12、删除文件夹下指定后缀的文件。
2023-07-20 23:27:48
1562
2
原创 Unity AES加密代码
Unity笔记,需要给项目资源加密,因此查询对比下来,加密速度和安全度都是AES加密最好,因此编写了加密代码,包括、byte[]->byte[]、byte[]->base64string、string->base64string、string->byte[]等加密解密方法,以及异步方法,另外,Key密钥必须是16位字节倍数,Vector密钥向量必须是16位,都以处理,Key会使用32位,Key和Vector长度可随意填写,超过的会截断,缺失的会重复填补进行补足。
2023-07-20 23:26:35
272
原创 Unity中模型动态添加贴合模型的BoxCollider,适用于多模型组合的,并且旋转后的模型
Unity中模型动态添加贴合模型的BoxCollider,适用于多模型组合的,并且旋转后的模型
2022-12-19 15:33:30
515
原创 Unity编辑器扩展——调用Git,在Unity中拿到Git上每次提交Push的Log等信息
Unity编辑器扩展——调用Git,在Unity中拿到Git上每次提交Push的Log等信息
2022-12-19 15:23:49
397
原创 Unity中对预制体烘焙光照贴图,在其他Scene中使用或者动态生成带光照贴图的预制体
Unity中对预制体烘焙光照贴图,在其他Scene中使用或者动态生成带光照贴图的预制体
2022-12-19 15:19:44
1439
1
原创 Unity中保存TextureFormat为Alpha8的灰度图时,直接保存是透明图的处理
Unity中保存TextureFormat为Alpha8的灰度图时,直接保存是透明
2022-12-19 15:06:36
676
原创 Unity中SteamVR2.0手柄按键绑定当SteamVR Input里的Open Binding UI按钮点击后打不开
Unity中SteamVR2.0手柄按键绑定当SteamVR Input里的Open Binding UI按钮点击后打不开
2022-12-19 15:03:29
1521
原创 UE4中 当3DUI(widget)挂着Pawn或者其他第一控制对象上时,旋转时模糊的解决方法
UE4中 当3DUI(widget)挂着Pawn或者其他第一控制对象上时,旋转时模糊的解决方法
2022-12-19 14:58:22
681
原创 Unity中的Text内容有空格导致换行,以及让每行首字符不出现标点符号
Unity中的Text内容有空格导致换行,以及让每行首字符不出现标点符
2022-12-19 14:41:57
1855
AVPro Movie Capture - Ultra Edition 5.0.5
2023-08-10
Fingers - Touch Gestures for Unity 3.0.10
2023-08-10
Unity中运行时显示编辑器中的平移旋转缩放的功能,并且支持交互,支持跨平台
2023-01-02
Unity工具,去除未使用到的资源
2022-12-28
点燃你温暖我同款爱心代码
2022-12-19
UE4批量打包PAK文件工具源码
2022-12-19
文件浏览器,打开文件浏览器选择本地文件进行加载等
2022-12-19
UE4批量打包Pak.rar
2020-04-23
RT-Voice PRO 2.9.5 文字转语音
2020-03-17
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人