- 博客(11)
- 收藏
- 关注
原创 Gitlab 环境部署及恢复
本文介绍了Gitlab CE v11.6.5的安装配置流程:1)添加软件包存储库并安装指定版本;2)配置仓库和备份目录路径;3)执行服务重启使配置生效;4)处理备份数据恢复操作;5)配置QQ企业邮箱的SMTP服务。关键步骤包括设置EXTERNAL_URL、修改数据存储路径、停止相关服务进行数据恢复,以及配置邮件发送功能。整个过程通过命令行工具完成,涉及gitlab-ctl和gitlab-rake等管理命令的使用。
2025-12-29 14:14:47
174
原创 Unity 游戏开发之 iOS SDK 接入(四)
本文介绍了在Unity开发中实现跨模块调用的策略模式方案。通过定义NativePluginProtocol协议作为接口规范,在UnityFramework中的NativePlugin作为调用方,而具体实现放在Unity-iPhone模块的MyNativePlugin中。关键点包括:1) 使用协议解耦接口与实现;2) 通过运行时反射动态设置协议实现;3) 处理字符串参数的内存管理。这种架构实现了UnityFramework对主工程SDK功能的间接调用,同时保持了模块间的低耦合性,适用于需要分离核心框架与平台特
2025-12-26 10:26:16
212
原创 Unity 游戏开发之 iOS SDK 接入(三)
本文探讨了在Unity导出iOS工程后,SDK接入的两种方案。当需要将SDK接入放在Unity-iPhone而非UnityFramework时,面临两个关键问题:1)UnityFramework如何调用Unity-iPhone中的SDK函数;2)如何接入SDK的生命周期函数。文章通过Objective-C代码示例展示了UnityFramework的动态加载方式,并指出当项目需要接入多个SDK或存在冲突时,需要将SDK接入移至Unity-iPhone,这引发了跨框架调用的技术挑战。后续将针对这两个问题展开深入
2025-12-25 10:53:34
188
原创 Unity 游戏开发之 iOS SDK 接入(二)
本文介绍了在Unity中接入iOS SDK时如何正确处理生命周期问题。通过创建继承自UnityAppController的自定义类MyAppController,可以避免直接修改Unity原生代码。具体步骤包括:1)创建MyAppController.h头文件;2)实现MyAppController.m文件,使用IMPL_APP_CONTROLLER_SUBCLASS宏进行替换;3)在自定义类中重写生命周期方法并调用SDK相关函数。这种方法既遵循了非侵入式编程原则,又便于后续维护,不会在每次导出项目时被覆盖
2025-12-24 09:58:54
203
原创 Unity 游戏开发之 iOS SDK 接入(一)
本教程介绍如何实现C#与Objective-C交互以接入iOS SDK。主要步骤包括:1) 在C#中创建NativePlugin类,使用DllImport声明外部方法;2) 在iOS插件目录创建NativePlugin.m文件,实现对应的Objective-C函数;3) 在C#代码中调用这些原生方法。示例展示了登录功能的实现方式,通过CallNativeFunc方法传递参数调用原生代码。这是iOS SDK接入的基础环节,后续将介绍SDK生命周期管理等进阶内容。
2025-12-23 16:49:32
103
原创 [Cocos2dx] 游戏更新方式对比
目前市面上常见cocos2dx游戏的更新有两种做法:散文件更新即单个文件更新;zip包更新,然后本地解压;两种方式各有优缺点,下面就分别来分析一下。散文件更新做法就是客户端存放一份所有文件与对应的校验值(md5或者crc)列表, 每一次更新都生成一份新的文件名与校验值对应的列表存放在web服务器上,客户端启动的时候拉取最新的校验值列表与本地的对比,发现哪些文件有更新直接下载即可。优势:无论当前客户端处于哪一个版本,都能快速更新到最新版本;更新逻辑比较简单,只需要简单对比文件的校验值即
2021-10-14 17:57:40
893
原创 [linux] 批量修改函数名
我们在写代码的时候,写到后面经常发现之前定义的函数名不够好,要一个个去改的话也挺麻烦的,其实 linux 已经给我提供了强大的工具 sed 了,想要了解更多的话可以去读官方手册。下面提供一个常用版本的批量替换的功能的方案:grep funcA-R ./* | awk -F: '{print $1}' | xargs sed -i "s/funcA/funcB/g"...
2019-04-23 14:09:45
747
原创 [android] 查看 Android apk 信息
查看 Android apk 信息`aapt`查看 `apk` 相关的信息在国内,由于发行的渠道很多,所以我们经发很多渠道不同版本的包 ,虽然现在有 gradle,我们能很方便的出包,并且使用不同的配置,本着严肃的态度,在给渠道之前再次确认一下给渠道的包的 package, versionCode,versionName 是否正确,这个时候 aapt 就派得上用场了。aaptaapt 即 A...
2019-04-20 11:06:24
2162
原创 [linux] #line 指令
\#line 指令告诉与处理器将编译器内部存储的行号和文件名更改为给定的行号和文件名。语法:#line num [filename]示例 main.c:#include <stdio.h>int add(int x, int y){ printf("%s: %d\n", __FILE__, __LINE__); return x + y;}#lin...
2018-11-24 23:14:44
4032
原创 [unity] 自定义命令
unity 命令行模式(batchmode)方便大家实现自动化编译构建,但是仅 unity 本身提供的功能不能满足我们的要求怎么办,这个时候就要使用到了 unity 提供的 -executeMethod 参数,它的使用方法如下:Windows:C:\program files\Unity\Editor\Unity.exe -quit -batchmode -executeMethod ...
2018-06-13 23:12:27
761
原创 [c] 数据对齐
上周面试一个题目,考察的是 c 语言数据结构里面的对齐,题目如下:struct S { char a; short b; int c;}在 32 位机器上占用的空间大小是多少?答案: 8想必大家都知道这个答案,而且原因大家也都清除,但是我不太确定有多少人知道详细的内存布局?假如 S 的地址空间从 0x0000 开始, a 跟 c 的地址分别为 0x...
2018-06-02 16:48:47
610
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅