自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(64)
  • 收藏
  • 关注

原创 android崩溃处理

如果能获得logcat,可以直接查看logcat日志,logcat日志缓冲区是有限制的,超过则会清除旧的日志,所以一般只能保存10几分钟可以用如下命令把崩溃日志保存到文件中这个只能查看实时日志,没法查看历史日志,可用如下命令快速过滤崩溃日志。

2024-09-21 23:23:59 1486

原创 unity的颜色空间

因为 Gamma 颜色是为了符合人眼习惯而进行校正的,但在光照等需要对颜色进行运算时使用 Gamma 颜色是不准确的,所以需要先转换到线性空间,计算后在显示前再还原到 Gamma 空间。

2024-09-19 23:26:41 820

原创 # URP管线自身代码问题

修复通过 CameraCaptureBridge.AddCaptureAction 抓屏抓到的是没经过后处理的修复相机勾选 Post Processing 后,通过 CameraCaptureBridge.AddCaptureAction 抓屏屏幕卡住修复启用 UniversalRenderPipelineAsset 的 MSAA 后,通过 ScreenCapture.CaptureScreenshotIntoRenderTexture 抓屏出错7.3.1没有这个问题。

2024-09-19 23:19:30 1102

原创 unity截屏

获取屏幕纹理获取相机纹理。

2024-09-19 23:18:10 1519

原创 unity图像处理

GraphicsBlit纹理通过材质渲染到目标,纹理设为材质的 _MainTex 属性将 dest 设置为渲染目标,为null时直接渲染到屏幕,使用后RenderTexture.active变成dest该操作在GPU上复制纹理,速度很快在 android 上如果不生效,尝试创建 RenderTexture 时深度值设为0Blit是纹理操作,所有参数都是针对纹理坐标,scale 和 offset 用来设置uv偏移和缩放,

2024-09-19 23:15:35 1382

原创 URP渲染管线研究

在渲染通道中有个渲染物体的通道,该通道遍历物体队列把调用Shader中的某个Pass的指令加入指令队列->Pass中通过Shader执行物体渲染过程。-> 执行渲染网格指令时会执行着色管线 -> 调用Shader中的某个Pass->Pass中通过Shader执行物体渲染过程。渲染管线根据需要加入各种渲染通道,对渲染通道排序后依次调用,每个渲染通道根据需要加入各种渲染指令到指令队列中,或直接通过 ScriptableRender.current.cameraColorTarget;

2024-09-19 23:10:25 803

原创 Probuilder卡顿

当对复杂网格体(顶点>10000)使用 Probuilderize 命令或者涉及MeshImporter.Import 函数时会卡住很久(几分钟以上)函数 GetQuadScore 反复调用 mesh.GetVertices()在外部调用 mesh.GetVertices() 并缓存结果。

2024-09-19 23:07:59 203

原创 ffmpeg使用

ffmpeg是一个音视频处理软件,很多工具内部都是调用这个可以剪辑,裁剪,转码音视频,甚至能压缩图片文档: https://ffmpeg.org/ffmpeg-all.html。

2024-09-19 23:06:25 1647

原创 unity坐标系

unity 采用左手坐标系: 大拇指向x,其它指从y->z,y轴向上,z轴向前,x轴向右opencv opengl WebGL 3dMax 采用右手坐标系 ( 参考 OpenCVForUnity\org\opencv\unity\ARUtils.cs)左右手坐标系的互换规则可以是 x,y,z 任一坐标取反,当你定下来后,后续就要统一,比如你采用 x 取反,那后续就不要用 y ,z 取反绕轴旋转就是伸出左手,大拇指跟轴向一致,握拳方向就是正方向点P坐标从A坐标系到B坐标系的转换Pa。

2024-09-19 00:30:46 1181

原创 unity进入PlayMode详解

参考 https://docs.unity.cn/cn/2019.4/Manual/ConfigurableEnterPlayMode.html。

2024-09-19 00:29:31 1879

原创 async异步方案

async 是c#后面出的异步解决方案,不同于 yield 的生产者消费者模式async 是完整的异步方案,包括异常处理,返回值处理等async 的实现原理是编译器处理 async ,封装成状态机,配合 await 操作符注入回调。

2024-09-19 00:14:30 803

原创 unity打包webgl在不同浏览器中渲染结果不同

在c端使用位操作把4个RGBA(255)颜色值合并成一个float,然后存到R8Float纹理中。同样的unity工程,打包成webgl后,在2个不同的机器上运行时,一个渲染正常,一个不正常。在shader端取出R8Float纹理的值,然后拆分成4个RGBA值。比如 单独用一张 RGBA 纹理来存储Color。结果这些操作在有的机器上正常,有的机器上不正常。经过排查,是因为代码中用到了这样的操作。去掉所有位操作,改用多张纹理。

2024-09-19 00:01:07 256

原创 c#指针IntPtr

IntPtrGCHandle代表c#对象的引用,最常用的就是获得对象指针,或把对象转成指针Alloc把c#对象转成 GCHandle, GCHandleType.Pinned 表示把对象固定住,不会被垃圾收集器移动获得c#对象的c++指针,这个是真的c++指针,可以传给c++函数直接操纵处理要求gchandle必须是通过 GCHandleType.Pinned 分配的,并且对象布局必须是 restricted type-layoutToIntPtr。

2024-09-18 23:56:36 1544

原创 unity常用代码Native

参考参考。

2024-09-18 23:45:51 1907

原创 WebGL平台编译c++插件

该示例本身是通过 cpp 源码方式直接做为web插件的,跟 PluginSource 中的头文件是有引用关系的,发布时最好编译成 .a库。由于这里不需要把接口导出给js用,因此不需要编译 .jslib ,只需要编译出 .a。UseRenderingPlugin.cs 调用c++插件进行额外的渲染。

2024-09-18 23:43:23 1249

原创 unity资源加载

资源加载 AssetBundle Resources

2024-09-18 23:37:51 1603

原创 UIToolkit示例

纯图片按钮 列表设置元素间距 Editor模式下自定义Tooltip

2024-09-18 23:30:09 942

原创 TextMeshPro使用

TextMeshPro 是 Unity 的最终文本解决方案是 Unity UI Text 和旧版 Text Mesh 的完美替代方案文档: http://digitalnativestudios.com/textmeshpro/docs/

2024-09-18 23:24:29 1316

原创 unity缩小包体

缩小包体 优化 裁剪

2023-06-04 12:16:19 326

原创 shader自定义宏

shader 宏定义 变体 shader丢失

2023-06-04 12:13:40 967

原创 unity画面闪烁问题

画面闪烁 vSyncCount切换

2023-06-04 12:09:54 3547

原创 unity崩溃查找

android 安卓 崩溃 日志

2023-06-04 12:07:11 2945

原创 unity截屏截图录屏

截图 截屏 快速 效率高

2023-06-04 12:03:56 838

原创 Odin-3.扩展EditorWindow

参考 https://odininspector.com/tutorials/custom-editor-windows/odin-editor-windows。

2023-04-09 13:24:42 518 1

原创 Odin-4.扩展序列化

Odin 序列化是在unity内置序列化的基础上进行扩展,而不是取代本质上是实现了 ISerializationCallbackReceiver 接口,在 unity 序列化之后执行 Odin 序列化进行补充无法从上面类派生的,可以这样。

2023-04-09 13:23:23 464

原创 Odin-1.介绍

Odin 最大的作用就是让你很方便的直接在 Unity 中开发一些编辑工具,比如 技能编辑器编辑完后保存成配置文件,供运行时使用,所以运行时一般只用到 OdinSerialize还提供了一套校验流程,让你对编辑好的配置进行校验,快速发现问题而不用等到进入游戏才发现主要包含3大模块(各自封装成dll):Inspector扩展,包括扩展Inspector窗口扩展EditorWindow扩展序列化资源检验因为 Inspector扩展 主要是编辑配置文件,加载/保存 配置文件经常会用到 扩展序列化。

2023-04-09 13:17:52 362

原创 Odin-2.扩展Inspector窗口

最大的应用是和扩展 EditorWindow 结合,做一些编辑器工具参考 https://odininspector.com/tutorials/using-attributes/simple-attribute-examples。

2023-04-09 13:16:15 238

原创 数据解析-DataProvider

fill:#333;stroke:1;fill:none;important;important;important;important;important;important;important;important;important;important;important;important;important;important;important;important;负责加载并解析数据负责加载资源负责解析数据准备存放数据的地方你的数据解析器数据提供者接口外部使用数据的对象。

2023-04-09 13:08:31 100

原创 任务池-TaskPool

fill:#333;stroke:1;fill:none;important;important;important;important;important;important;important;important;important;important;important;important;important;important;important;important;调度任务你的任务执行器接口YourTask你的任务数据TaskBase任务基类你的任务执行器。

2023-04-09 13:07:14 398

原创 事件池-EventPool

fill:#333;stroke:1;fill:none;important;important;important;important;important;important;important;important;important;important;important;important;important;important;important;important;事件池,管理事件派发事件监听器接口事件对象你的事件参数基类你的事件参数类型1你的事件参数类型2你的事件监听器。

2023-04-09 13:05:15 194

原创 16.配置-Setting

fill:#333;stroke:1;fill:none;important;important;important;important;important;important;important;important;important;important;important;important;important;important;important;important;入口类配置管理模块,功能委托给 ISettingHelper配置加载解析和管理的实现接口默认的配置管理玩家配置管理。

2023-04-09 13:04:43 89

原创 19.Web请求-WebRequest

fill:#333;stroke:1;fill:none;important;important;important;important;important;important;important;important;important;important;important;important;important;important;important;important;入口下载管理器下载任务池,对任务进行调度一开始会初始化固定数量的任务执行器下载任务,封装任务数据下载任务执行器接口。

2023-04-09 13:03:36 184

原创 18.界面-UI

fill:#333;stroke:1;fill:none;important;important;important;important;important;important;important;important;important;important;important;important;important;important;important;important;入口类,功能委托给 UIManagerUIManager实际UI管理类加载UI预制体实例化UIIUIFormUI界面接口。

2023-04-09 13:02:53 120

原创 14.资源热更新工具配置-Resource

在使用资源工具编辑、打包资源前,要先进行配置。

2023-04-06 01:27:09 141

原创 14.资源热更新工具-Resource

资源工具都放在菜单 GameFramework->Resource Tools 下使用前要先进行配置,参考。

2023-04-06 01:23:55 219

原创 14.资源热更新代码-Resource

fill:#333;color:#333;color:#333;fill:none;是编辑器模式不是编辑器模式是否app版本有更新app版本没更新无热更新有热更新零散方式更新增量包方式更新检测是否EditorResourceMode进入游戏检测是否单机模式单机模式初始化从服务器获得最新版本信息检测是否有热更新下载最新版本的配置文件刷新本地配置文件保证信息正确检测需要更新的资源零散方式更新资源获得增量更新包信息下载增量更新包校验下载的增量更新包。

2023-04-06 01:22:40 104

原创 14.资源热更新-Resource

unity提供的 Addressable 更好用跟通常的热更流程并无不同:- 添加要热更的资源- 打包 AssetBundle 上传- 应用按平台下载 AssetBundle- 加载 AssetBundle 并从中取得所需资源可以先阅读下理解下这里资源的相关概念。

2023-04-06 01:21:57 121

原创 13.流程-Procedure

fill:#333;stroke:1;fill:none;important;important;important;important;important;important;important;important;important;important;important;important;important;important;important;important;入口流程管理器其实就是流程状态持有者接口的实现流程状态持有者接口流程状态机流程状态机接口。

2023-04-06 01:19:24 86

原创 14.资源加载-Resource

这里只是加载热更新的资源,unity 新版本已经提供 Addressable 实现了该功能所以这里是围绕 AssetBundle 实现了热更资源的添加,打包,下载,使用跟通常的热更流程并无不同:- 添加要热更的资源- 打包 AssetBundle 上传- 应用按平台下载 AssetBundle- 加载 AssetBundle 并从中取得所需资源。

2023-04-06 01:18:26 98

原创 11.网络-Network

fill:#333;stroke:1;fill:none;important;important;important;important;important;important;important;important;important;important;important;important;important;important;important;important;入口网络管理器负责创建 NetworkChannelBase数据包解析器接口要实现自己的协议就实现该接口数据包头。

2023-04-06 01:17:50 146

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除