- 博客(46)
- 资源 (1)
- 收藏
- 关注
原创 Python创建软链接
python创建软链接 发布命令 pyinstaller -F --distpath 目标路径…\editor\ImageTools\Tools 脚本路径\Link.py。
2024-06-13 10:45:18
465
1
原创 Unity Protobuf+RPC+UniTask
远程过程调用(Remote Procedure Call,简称RPC)是一种网络通信协议,允许程序在不同的地址空间(通常在不同的物理计算机上)中调用彼此的方法,好像它们是在本地执行的一样。RPC隐藏了底层的网络通信细节,使开发人员能够像调用本地函数一样简单地调用远程服务。
2024-06-13 10:38:09
876
原创 Python XLSX导出到LuaTable
XLSX配置表直接导出到LuaTable导出的时候把key进行抽离出__key__ 节约内存占用 逻辑中通过__index进行映射。
2024-03-26 15:26:10
758
原创 C#中使用 async await TaskCompletionSource<T>实现异步逻辑同步写
异步逻辑同步写代码 Task、async 和 await 是 C# 中用于处理异步编程的关键概念。它们一起构成了异步编程的基础。
2024-01-03 15:33:16
1309
1
原创 TextMeshPro 使用
TMP在Unity2018中是带有动态字体这个功能的 在Unity2018之前的版本中 都是以package的形式导入的并且不支持动态字体1.生成一个7000+的静态字体上挂载一个动态字体资产 通常来说7000+够用了 但是异体字生僻字繁体字不全 会导致文本渲染不出的问题2.自己写个工具把项目中用到的中文收集起来去生成一个静态字体资产然后挂载一个动态字体 这样做的好处是静态字体可控 占用的内存相对较少3.纯动态字体 使用动态图集的多图集模式一个需要生成的字体文件点击生成保存即可右键选中字体文件
2024-01-02 15:16:22
1596
原创 lua->C#->lua的性能优化 Unity反射生成所有UI接口
比较理想的情况还是C#只提供Set接口 不提供get接口 这样就完全的做成了渲染和逻辑分离 可移植和可扩展性大大提高 但是这种方式需要一个趁手的兵器 使用反射生成所有ui的静态接口调用。lua调用C#的对象是非常昂贵的 中间要执行很多的步骤和各种类型转换带来的开销。比如如何设置一张图片呢 可以考虑传入图片名字 图集名字 UI节点名字进行设置。代码只是个简单的例子和思想 还是要结合自己的ui框架进行调整和修改。
2023-08-02 14:59:31
216
原创 Python os库
在Python中,os是一个内置库,提供了与操作系统交互的功能。它允许你访问操作系统的功能,如文件和目录操作、进程管理、环境变量等。
2023-06-14 13:51:45
172
原创 luajit编译+编译lua脚本
第二部 打开x86 Native Tools Command Prompt for VS 2019。这样只是将lua文件单个进行编译为字节码 后续的加密打包看个人喜好处理了 打完收工。然后命令行直接调用我们这个exe即可 传入lua脚本的根目录 和输出目录即可。等待编译完成即可 会得到luagit.exe 和lua51.dll。如果想编译某个文件夹下的 可以写个python脚本。执行完之后会得到一个 .exe的可执行文件。根据项目的luagit版本自行下载。打开cmd cd到src路径下。
2023-06-13 15:44:52
1383
原创 NDK编译c++代码
对于 Clang/LLVM 工具链,你可以通过安装 Clang 来获取 C++ 编译器。在该目录下,创建你的 C++ 代码文件(例如,MyDLL.cpp)。在你选择的位置创建一个新的目录来作为你的 NDK 项目的根目录。例如,可以在你的计算机上创建一个名为 “NDK” 的目录。如果你希望在本地使用 NDK 编译 C++ 代码,你需要安装 g++ 或 Clang/LLVM 等 C++ 编译器工具链。无论你选择使用哪种工具链,确保你的环境中安装了适当的 C++ 编译器,以便在本地编译和构建 NDK 项目。
2023-06-12 17:42:10
1133
原创 tolua_runtime混合编译自己实现的c++代码
使用lua作为游戏热更新方案时 编译tolua就变得尤为重要 如果自己想要写一些c接口也可以编译到tolua.dll中 lua中直接调用。游戏tolua是c语言实现 编译用的是gcc 如果用来编译c++代码 会报错 有些特性找不到 所以这块就牵扯到了c/c++混合编译。游戏tolua使用的c语言编写 我写的例子是c++语言实现 因为是接口 肯定会用到很多c++的特性 写起来会舒服很多。那就先将c++代码编译为.o文件 然后编译tolua的时候链接进去就可以了。这段是编译自己写的c++方法。
2023-05-31 14:44:31
328
2
原创 算法之美 -【两数之和】
给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。时间复杂度:O(N),其中 N是数组中的元素数量。时间复杂度:O(N^2),其中 N 是数组中的元素数量。解释:因为 nums[0] + nums[1] == 9 ,返回 [0, 1]。空间复杂度:O(N)。输入:nums = [2,7,11,15], target = 9。输入:nums = [3,2,4], target = 6。空间复杂度:O(1)。
2023-02-13 16:02:30
116
原创 算法之美-【无重复字符的最长子串】滑动窗口
请注意,你的答案必须是 子串 的长度,“pwke” 是一个子序列,不是子串。给定一个字符串 s ,请你找出其中不含有重复字符的 最长子串 的长度。解释: 因为无重复字符的最长子串是 “abc”,所以其长度为 3。解释: 因为无重复字符的最长子串是 “wke”,所以其长度为 3。解释: 因为无重复字符的最长子串是 “b”,所以其长度为 1。图片讲解算法核心 滑动窗口,保证每个窗口里字母都是唯一的。输入: s = “abcabcbb”输入: s = “pwwkew”输入: s = “bbbbb”
2023-02-13 15:53:38
106
原创 Unity TMP超链接和图文混排
游戏内聊天内容离不开的就是超链接 比如点击物品名字 显示该物品的详细信息等等。使用tmp制作超链和图文混排简直不要太简单。TP将碎图打包成图集导出到工程中。点击超链接触发的回调。调整单个图片的偏移量。
2022-12-21 13:47:32
1916
原创 adb shell 模拟器 关闭\打开WIFI
输入指令adb connect 127.0.0.1:7555 连接mumu模拟器的。打开终端 cd到adb目录下。adb shell 开\关wifi
2022-12-15 15:43:02
1135
原创 Android下查看so库的依赖
命令行 cd 到 ndk\toolchains\arm-linux-androideabi-4.9\prebuilt\windows-x86_64\bin执行命令 arm-linux-androideabi-readelf -d d:\test\test.so 就能看到so库的依赖了查看so库缺少哪些依赖命令行cd到 ndk\android-ndk-r13b\prebuilt\windows-x86_64\bin执行命令 ndk-depends.exe d:\test\test.so 会打印出缺少的
2022-12-06 10:57:20
607
原创 Unity Package Manager 443: timed out
add package时报错 failed to connect to github.com port 443: timed out。hosts文件路径C:\Windows\System32\drivers\etc。复制ip address添加到hosts文件中。然后再add package就能愉快的安装了。网上查了很多都是 设置了不起效。
2022-09-14 11:45:36
1787
5
原创 Unity 打包exe时添加管理员权限
64位 Editor\Data\PlaybackEngines\windowsstandalonesupport\Variations\win64_nondevelopment_il2cpp。路径 Editor\Data\PlaybackEngines\windowsstandalonesupport\Source\WindowsPlayer。level改成 requireAdministrator。这时候编译出来的exe就是带盾牌的了。第二步 修改level。
2022-09-08 13:52:47
1637
原创 Unity命令行调用
batchmode -quit -executeMethod {0 --调用的方法} -projectPath {1 打包的工程目录} -logFile {2日志输出目录} -resPath {3这个属于自定义命令 往往会有这种需求}游戏开发中 通常会实现一些编辑器工具 为了可以在编辑器中直接把资源打包成AB 这里就不得不使用到Unity命令行了。2.编辑器工程 调用打包工程的资源打包接口即可。1.需要一个打包工程 实现将资源进行打包功能。打包工程中解析传入的命令行参数。
2022-08-25 10:02:41
1109
原创 IL2cpp NotSupportedException: IL2CPP does not support marshaling delegates that point to instance me
将要传递到c++的方法加上AOT.MonoPInvokeCallback即可。
2022-08-04 14:47:19
1328
原创 Lua string.gsub特殊符号问题
string.gsub(s, pattern, repl[,n])s:替换字符串pattern:匹配方式repl:替换后的内容pattern 由于支持正则表达式有一些特殊字符来表示比如 (). % + - * ? [ ^ 只能加入转义符%例子 ADD+ string.gsub("ADD+", "ADD%+", "Test") 会输出Test例子 ADD+ string.gsub("[ADD+]", "%[ADD%+%]", "Test") 会输出Test...
2022-04-27 13:32:59
1169
原创 Unity 调试XLua.dll
1.使用cmakefile生成xlua c++工程第二步第三步第四步第五步 将生成出来.dll和.pdb放到Unity Plugins文件夹下第六步网上有说附加到Unity的 我试了不好使 附加到进程好使
2022-03-31 16:35:44
3062
原创 Unity TextureArray采样
向C#中传递TextureArrayTexture2DArray _texArr = new Texture2DArray(128, 128, 5, TextureFormat.RGBA32, false, true);for(int i = 0; i < texs.Count, i++){ Texture texture = texs[i]; Graphics.CopyTexture(texture, 0, 0, _texArr , i, 0);}_texArr.wrapMod
2022-03-29 15:09:42
4311
原创 Unity C#向Shader传递数组
C#创建数据 每个顶点对应一个数据 public void Start() { List<Vector4> param = new List<Vector4>(); MeshFilter meshFilter = GetComponent<MeshFilter>(); MeshRenderer meshRenderer = GetComponent<MeshRenderer>();
2022-03-23 11:52:22
4524
原创 Unity 材质无用的引用清理
整理资源的时候 发现材质属性面板上只有四张贴图 但是材质球确有五张贴图的依赖 想着写个工具处理下 没想到网上一搜已经有小哥写好了工具 直接拿来用了原文链接代码上做了简洁using System.Collections.Generic;using System.Linq;using System.Text;using System.IO;using System;using UnityEngine;using UnityEditor;/// <summary>/// 如果材
2022-02-25 13:58:51
5261
转载 探究PBR的两种流程以及Unity中的PBS
原文链接前言通过上一篇博客PBR原理我们大概了解了PBR的一些基础理念,这篇博客就让我们来探究一下PBR的两种流程和Unity中两种PBS材质,毕竟Unity是我主要学习的引擎(希望未来有机会接触虚幻4)预备知识虽然上一篇博客把一些基础理念都介绍了,但是这里还是要重点介绍一下这篇博客所需要的一些理念。Albedo可以理解为物体的基础色Base Color,即该物体本身颜色,也是漫反射光的颜色。其实该颜是色光的折射被物质吸收并形成漫反射后,成为不同波长的光,这就赋予了物体颜色。比如说物体呈现蓝色
2021-12-24 17:05:21
2298
原创 Shader相关笔记
Shader中的texcoord–[[texcoord取得是模型纹理的第一二三四等等纹理坐标TEXCOORD(n)是指纹理坐标,float2, float3, float4类型。n是指第几组纹理坐标。texcoord就是存在顶点里的一组数据, 我们可以通过这组数据在渲染的时候进行贴图采样]]Unity最多支持几套UV–[[unity一共支持4套uv,在shader编程中,分别叫UV0, UV1, UV2, UV3,而在c#编程中分别叫UV, UV2, UV3, UV4float2 ..
2021-12-07 13:53:47
3030
原创 贴图勾选sRGB Android平台上UI显示偏黑的问题
BiltType 勾选为Auto 默认为NeverAndroidBlitType.Never 不提供 sRGB 后备缓冲区。线性渲染需要一个执行 sRGB 读/写转换的帧缓冲区(请参阅 RenderTexture.sRGB),否则生成的图像通常显得太暗。因此,在使用线性渲染时,不建议使用 AndroidBlitType.Never。如果想使用 AndroidBlitType.Never 进行线性渲染,尽管有这些信息,您仍然必须设置自己的 sRGB 渲染目标并处理针对后备缓冲区的 blit 操作。Alw.
2021-12-03 16:57:58
2460
翻译 Unity TMP字体模拟器不显示的问题和某些手机上出现不显示的问题
参考链接TextMeshPro对象使用的MeshRender组件和TextMeshProUGUI对象使用的CanvasRenderer争夺材质上的 ZTest 导致ui文字渲染不出来新建字体材质 两个组件使用不同的材质 问题解决
2021-12-03 16:14:10
1454
原创 Python小图合并成大图 Unity解析复古资源
复古资源地图大多大于16384*16384(unity创建的最大贴图) 所以将地图切割成小图保存到本地 交给python处理# 小图拼接成大图# 由于Unity不能创建超过16384的Texture, 所以用Python解决import PIL.Image as Imageimport osimport jsonimport timeimport sysImage.LOAD_TRUNCATED_IMAGES = True# 图片大小上线Image.MAX_IMAGE_PIXELS
2021-10-29 15:47:32
1923
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人