- 博客(314)
- 资源 (10)
- 收藏
- 关注
原创 Cursor 真的提升效率啊,一年使用经验分享
利用测试框架(如Python中的unittest、Java中的JUnit等)编写测试用例,然后将代码和测试用例一起提供给Cursor,让它帮忙分析代码在测试场景下可能存在的问题,或者根据测试结果指导如何修改代码来通过测试,确保代码的质量和正确性。Cursor一般会保留一定的对话历史,你可以回顾之前和它交流的关于代码生成、修改等内容,便于参考之前的思路和生成的代码片段,特别是在处理一个较长周期的项目开发或者代码调试任务时,能避免重复提问和丢失之前有价值的信息。
2025-01-13 09:43:24
618
原创 【Cocos】热更Bug回顾
cocos自作聪明,用无序字典存储,导致更新包会出现旧包覆盖新包的情况。由于已经上架App Store了,再提审有风险,只好写个工具生成更新包名,使包名即符合升序,又符合hash排序,即使hash之后仍旧是正确顺序的命名。其实还有个方案:每次做新的更新包,把旧的更新包的文件也跟着替换一遍到最新,这样即使覆盖也都是本次要更新的新文件。由于这个会改动到已经更新的包,对测试和运营来说有风险,遂PASS。2、热更完毕卸载上次加载过的文件用于本次不重启即可生效。
2024-12-30 19:52:29
387
原创 【应用】随机生成20以内的加减混合运算
一年级了,需要口算练习题,老师找来的格式不适合打印,自己写了个工具可以生成PDF,排版布局适合A4纸打印。
2024-12-22 09:13:23
278
原创 【H5】Unity WebGL发布H5接入360渠道网页SDK
2、JavaScript -> C# -> Lua 通讯链 unityInstance.SendMessage();1、Lua -> C# -> JavaScript 通讯链 jslib实现。
2024-12-05 17:50:37
541
原创 iOS平台接入Facebook登录
1、Cocos2dx新建的项目要更改xcode的git设置,不然卡在clone,无法在线获取FBSDK。2、动态库链接 需要在Build Settings 添加库文件搜索路径。3、FB后台需要提交App Review才可以调试。3、git clone库文件代码接入。1、FB开发者后台注册账户。4、印尼手机卡开热点调试。
2024-12-05 17:45:16
947
原创 基于GameFrameWork创建的Unity项目提供WebGL平台支持
背景图改为JPG,图片尺寸矫正为4的倍数,不合理图集拆分,提高图集利用率。5、启动优化:第三方插件精简,读取xml改为生成代码,并且拆分三阶段加载资源,启动时,loading时,游戏中静默加载。1、WebGL平台下的兼容性处理,一些在iOS或者Android原生下的API在Web平台下也补充完整。近三个月处理Unity项目对于H5平台的支持,发布在即 ,回顾一下这个优化的过程。最终接入微信后,加上微信插件本身的优化,启动和加载时间控制在10S内完成。2、第三方库的支持,比如一些C++代码的调用。
2024-11-17 19:40:50
309
原创 【Android】GooglePlay账号被封五个之后的一点总结
这时候越来越多的开发者同病相怜,我们意识到形势变了,比iOS更严格的审核机制来了。2、代码方面:cocos2dx升级4.0,业务相关的C++代码混淆,Lua脚本和res加密,更换加密方式(压缩包加密,单文件混淆名称后加密),协议加密,更换域名。4、上架后台信息:更换五图风格,更换游戏品类,勾选部分上架地区。经过上述三个步骤,最远的一个游戏上架走的最远,连续迭代了五次,持续在架两个月。1、申请账号所需公司注册地,SIM卡归属地,信用卡等归属香港。后来做的一些尝试,摆脱关联,账号关联,代码关联。
2024-08-18 15:26:47
223
原创 Unity项目优化记录
好家伙,跑了两次看了内存快照,再看资源组织和管理方式,存在的问题确实比较多。1、修复内存泄露:结算界面由于资源引用丢失导致整个面板不会被释放,每次泄漏50MB左右的内存。7、粒子特效优化:设置规范,规定粒子发射数目上限,贴图大小上限,模型Mesh面数上限。5、请求协议优化:登录成功后集中请求的协议改为多线程,合并任务活动等协议请求。6、较大模型和spine降低面数,牺牲20%的效果提升60%的性能。2、改进资源卸载,通过引用计数管理资源,当引用计数=0,释放。10、spine导出格式由json改为二进制。
2024-08-18 11:17:56
527
原创 通过Bugly上报的日志查找崩溃闪退原因
第二步,查看内存和调用堆栈,通过分析波峰堆栈,查找内存增长的点,这里发现是spine相关的API,在相关调用地方加日志发现缓存失效,每次都重新创建新的spine,而旧的有没释放。./usr/bin/atos -o [dSYM文件的路径]/Contents/Resources/DWARF/[应用的名字] -l [内存基地址] [要转换的地址]OS应用发生崩溃时,系统会生成一份崩溃日志,这份日志中包含了崩溃时的堆栈信息,但这些堆栈信息并非直接指向源代码,而是以16进制的地址表示,这就需要我们进行。
2024-07-13 09:55:51
1019
转载 Visual Studio 2019 Product Key
Visual Studio 2019 Product Key [Please Star this gist] Follow My Account --> https://github.com/ch-kashif @ch-kashif Lets do a code together Join Cloud Disk repository --> https://github.com/ch-kashif/Clou
2024-06-18 16:44:39
116
原创 尾调用与尾递归
尾调用(Tail Call): 尾调用是指一个函数的最后一个操作是另一个函数的调用。尾调用的一个关键特性是它不会在调用栈上创建新的栈帧(函数调用记录),而是可以复用当前函数的栈帧。尾递归(Tail Recursion): 尾递归是递归的一种形式,其中递归调用出现在函数的尾部,类似于尾调用。尾递归函数在递归调用时不会在调用栈上积累新的栈帧,因此也可以避免栈溢出错误。这是一种非常有用的优化技术,尤其是在函数需要重复递归调用时。在尾递归中,递归调用的结果会被传递给下一次调用,并且没有其他操作需要执行。
2023-10-05 12:30:07
245
原创 Unity 发布WebGL平台,C#与JavaScript交互
(JavaScript Library)是Unity的一种机制,允许你在C#中通过JavaScript代码来执行一些操作。这是一种高级的技巧,主要用于一些特殊情况,比如在WebGL项目中使用JavaScript来实现与Web页面的互操作。3.利用Assets/Plugins/WebGL/jslib桥接。发布H5平台,接入SDK,比如微信等,涉及到C#与JS的交互。2.javascript层实现逻辑。
2023-09-23 09:20:46
1054
转载 这十个步骤让你的 App 避规ios 4.3被拒问题
您好,针对于贵方提出的 4.3 相关问题,我方目前已修改“地区/售价/分类”,主要目的在于针对不同的人群属性做运营方面的区分,我们希望给予用户不同的产品体验,包括应用程序内的功能侧重点,展现给用户的内容等等;④回复苹果产品设计理念等,表述产品情怀,希望打造独一无二的产品,比如功能目前会跟其他类似,会有相同情况;简单来讲,4.3 是功能或者应用程序重复出现在 App Store,包括相同类型产品功能较一致,以及上传马甲或者分包导致的被拒回复,以下本人亲测的方案希望能帮到大家处理此类问题!
2023-08-27 08:32:23
1376
原创 Unity APK在应用宝上架因为提前访问Android_ID被拒
1.个推SDK,Bugly等SDK的API会访问到ANDROID_ID,通过调整逻辑放在同意隐私协议之后初始化.3.如果Unity开启过Analytics,然后再关闭依然后收到获取android_id的log。2.提前访问到PlayerPrefs相关API也会触发 android_id.需要修改UnityConnectSettings.asset文件 1改成0。Unity启动时获取了设备信息,其中包括Android_id.这在安全审查中不被允许,需要在同意隐私协议之后才允许调用.
2023-02-27 14:11:46
760
1
原创 Unity 查找没有使用的资源
2.获取每个文件的依赖文件,组合一个依赖文件列表 dependenciesFileList。file 是否在dependenciesFileList。1.获得project所有文件 allRes。不在 记录 找到了无用文件。3.遍历allRes。
2023-02-22 17:21:45
950
原创 Unity Dynamic Batching合批注意事项
1.该物体就具有odd negative scaling,即奇数个负缩放轴,不能batching。由于绘制顺序涉及到render state 切换。
2023-02-17 15:24:25
213
原创 C#中的lock关键字详解
块中需要传入一个用于同步的对象。这个对象应该是多个线程都可以访问的共享资源。如果每个线程都使用不同的对象来锁定共享资源,那么锁就不起作用了。块中时,它会尝试获取锁。如果锁已经被另一个线程持有,那么当前线程将被阻塞,直到锁被释放。关键字可以用来实现线程同步,确保在多线程环境中只有一个线程可以访问被锁定的资源。块中的代码执行完毕时,锁会被释放,其他线程才能获取该锁。参数是一个用于同步的对象,也就是需要锁定的资源。在上面的代码中,我们使用了一个私有的对象。在多线程环境中的访问是线程安全的。注意事项 以下是使用。
2023-02-16 10:00:49
4185
原创 Unity shader 常用函数
saturate(x)的作用是如果x取值小于0,则返回值为0。如果x取值大于1,则返回值为1.fmod(x, y): 返回 x / y 的小数部分. 如: x = i * y + f。lerp(a,b,w) 根据w返回a到b之间的插值.frac(x): 返回x的小数部分.
2023-02-08 18:04:45
477
转载 unity set pass call都干了些什么
一个材质球引用的shader可以有多个pass,因此携带这个材质球的物体会被渲染多次,"激活"一一个pass的过程就是set pass call。因此改变影响 pass的行为都会触发一次set pass call(比如游戏运行中开启阴影进而影响了渲染管线),因此把set pass call 作为影响drawcall的一个标准。链接:https://www.zhihu.com/question/299878086/answer/534969185。商业转载请联系作者获得授权,非商业转载请注明出处。
2023-02-03 10:49:52
695
原创 基于Egret的微信小游戏H5项目总结
项目经历H5 puremvc框架 View 与 Mediator 组合模式 View 上Button Image scrollView的事件在Mediator中实现,View仅仅是皮肤、是界面。修改界面布局,不需要改动Mediator。 Mediator之间是策略模式 比如商店,活动等。基础操作不变,都有购买,都有礼包列表,都有限购次数,都有活动持续事件。变化的是档位,变化的是货币单位,变化的是礼包内容。不同Mediator对应不同的策略。 Module 与 Mediator 观察者模式 比...
2021-06-10 12:05:15
750
4
原创 实现企业微信机器人自动发消息
起因:每次发布版本都要再打开微信去艾特对应的负责人,这一步挺机械的,看到运维群有机器人自动发消息,查了下有开放API可自定义消息。https://work.weixin.qq.com/api/doc/90000/90135/90239'''Date: 2021-01-31 18:57:35LastEditors: yanghhLastEditTime: 2021-01-31 18:57:59FilePath: /roh5/Users/yanghh/Desktop/notify.py'''f
2021-01-31 20:38:48
6934
7
原创 2020年终技能点总结
2020年终技能点总结1.使用Jenkins自动化出包发布2.小游戏发布更新上架流程3.换装模块从设计规范制定到效果实现4.项目优化,资源管理心得5.图形学基础原理进一步掌握2021展望1.图形学进一步掌握,能熟练改写shader2.能扛起前端框架搭建任务3.通过独立开发的项目练手,训练技术选型能力和从零搭建复杂项目能力4.在团队协作方面具有更强的共情能力...
2020-12-30 18:10:20
202
原创 Unity 电脑仿真装机演示项目
知识点1.场景切换 changeScene.cs2.UI界面展示操作3D模型使用RenderTexture 实时承接模型渲染结果 赋值给RawImage旋转模型操作 TouchObj.cs 缩放模型 ScaleObj.cs3.仿真装机原理碰撞检测:给目标绑定BoxCollider 拖动(MoveObj.cs)组件到目标上OnTriggerStay(Collider other)检测碰撞碰撞后吸附组件到目标上 可以设置位置,也可以把组件删除&把目标上的组件显示出来.
2020-12-30 18:00:52
2342
3
原创 纹理
纹理https://www.icourse163.org/learn/HUST-1003636001?tid=1457257442#/learn/content?type=detail&id=1232561404第九章 第十章 第十一章https://www.xuetangx.com/learn/UCBERKELEYX08091000166/UCBERKELEYX08091000166/4230980/video/6270084纹理映射的主要思想:建立物体空间表面与纹..
2020-12-12 19:58:50
354
原创 游戏开发中的美术资源规范
美术资源规范:一个模块下的散图会打图集,降低drawcallUI布局时文字和图片分组,利用批处理降低drawcall通过引用计数等方式管理资源的加载和释放,降低运行内存。提高加载速度 :云服务器对指定域名下的CDN资源智能压缩网络加速提高加载速度 : 缓存常用资源,比如主场景 主要的功能界面,字体,音乐等提高加载速度和降低内存占用:酌情删除部分动画帧序列背景衬托图风格尽量通用,大小适中不要过大,可以通过程序缩放适配大小。一些ICON使用8bit 背...
2020-12-02 11:07:35
1944
原创 Direct X 12 3D的初始化
D3D的初始化CPU与GPU间的同步围栏用ID3DFence接口表示视图==描述符 描述内存的数据类型等信息在使用深度缓冲区之前,先创建相关的深度视图并把它绑定在渲染流水线上。创建渲染目标视图同理。frames per second FPS 每秒渲染帧数 流畅度的标杆封装隐藏实现细节 把精力集中在需要关注的特定主题上顶点 与 索引四个顶点有两组索引 组成两个三角形把复用的三角形顶点数据转换为索引这种数据结构输入布局...
2020-12-02 09:58:01
210
原创 优酷小游戏(Egret)断线重连后回包多次
问题:Egret引擎导出的优酷小游戏在其平台断线重连后收到多次回调猜测重连操作内部实现有BUG导致旧的socket对象还在,还能接受消息解决方案 重写重连方法 换做 my.connectSocket let egret_ISocket_addCallBacks: Function = egret.ISocket.prototype["addCallBacks"]; let egret_ISocket_bindEvent: Function = egret.ISocket.
2020-10-31 21:44:22
347
原创 Egret发布小游戏 分包脚本JavaScript heap out of memory
windows用户:将C:\Users\{你的用户名}\AppData\Roaming\npm\egret.cmd中的内容修改为:@IF EXIST "%~dp0node_modules\egret\EgretEngine" (FOR /F "usebackq delims=" %%a in ("%~dp0node_modules\egret\EgretEngine") do @(set EGRET=%%a)) ELSE (set EGRET=%~dp0node_modules)...
2020-10-13 10:25:25
699
原创 换装心得-DragonBones
换装层级遮挡处理1场景举例: 手握武器,剑柄在大拇指和四指之间。 这时处理方式是把拇指和四指分两部分,程序单独调整层级(setChildIndex)换装层级遮挡处理2场景举例: 帽子带帽尾巴,尾巴在头发后面,帽檐在头发前面 这时处理方式是把帽檐和帽子PNG分离,两个json文件控制显示隐藏(displayIndex)基础换装分为局部换装(武器翅膀头饰等)和全局换装(服饰)具体参考官方文档:https://docs.egret.com/dragonbone...
2020-06-09 16:35:52
572
原创 职场沟通记录
”我以前写的那个更新工具卡,没用到多线程““这小工具也用得着多线程?” --质疑的态度‘哦?用多线程的好处是什么,可以提高CPU利用率是吧,我要试试’ --仔细思考谈话对方的思路和想法...
2020-06-06 22:07:25
247
转载 encodeURI javascript
javascript可以使用的内置函数有encodeURI()encodeURIComponent()他们都是用utf-8的编码方式encodeURI(),用来encode整个URL,不会对下列字符进行编码:+ : / ; ?&。它只会对汉语等特殊字符进行编码encodeURIComponent (),用来enode URL中想要传输的字符串,它会对所有url敏感字符进行encode在对url做encode操作时,一定要根据情况选择不同的方法。例如url = 'ww.
2020-06-02 09:52:02
230
转载 mac .profile
1. 当你的home下面有.bash_profile或者.bash_login的时候,会忽略调.profile.2. source ~/.bash_profile 保存使命令生效3.主要有一下几种方式 /etc/profile ~/.bash_profile ~/.bash_login ~/.profile ~/.bashrc ~/.bash_logout /etc/profile4...
2020-05-02 20:05:22
723
原创 delegate 委托 代理模式
一组协议/接口不同的对象 有相似的行为 把这种相似的行为抽象出一组接口 形成一个delegate 在整个工程中delegate的接口逻辑调用一次具体到不同的情况下 用不同的对象实现这个delegate的接口接口内部实现自己的详细步骤一个例子是渠道SDK接入,一般每个SDK都有init login pay share logout 等接口 可以把这些接口封装成一个del...
2020-04-02 21:49:17
285
转载 rror: unpack failed: error Missing tree
解决:解决方法来自 stackoverflow.使用如下命令即可推送成功:git push --no-thin review HEAD:refs/for/master关键点是 --no-thin 选项. stackoverflow 上的那位答主这么解释的:默认情况下 git push 会在向服务器推送时进行优化,以将所发送的包降低到最小. 做法是发送时忽略本地仓库和远端仓库中共有的...
2020-02-26 19:10:17
889
原创 Git出现 fatal: Pathspec 'xxx' is in submodule 'xxx' 异常 解决方案
fatal: Pathspec 'au.py' is in submodule 'rowebh5' git rm -rf --cached rowebh5/ git add rowebh5/
2019-12-04 18:02:28
1828
混淆代码的变量和函数,差异化两个APP的相似度
2024-10-12
分享一下python遍历文件夹,读写Excel,压缩文件,上传百度云等操作
2023-02-22
自定义的ScrollRect
2018-05-16
APK Log查看脚本
2018-05-15
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人