游戏开发问题记录
清理掉包里面的错误
清理了 manifest.json
文件中一些 用不到的 SDK(如 com.bytedance.starksdk),从而解决了加载报错。
manifest.json
是干什么的?
这是 Unity 的包管理器(Package Manager)的配置文件,决定了项目会自动安装哪些包。
eg:
{"dependencies": {"com.unity.textmeshpro": "3.0.6","com.bytedance.starksdk": "1.0.0" ← 就是这个导致网络错误}
}
你如果删除了其中的 "com.bytedance.starksdk"
,Unity 就不会再尝试去下载和加载这个 SDK,自然也就不会出现连接失败、初始化异常了。
建议清理时的步骤:
关闭 Unity 编辑器
打开
manifest.json
删除你不需要的第三方包,例如:
"com.bytedance.starksdk": "xxx"
保存文件
重新打开 Unity 编辑器,观察控制台是否还有错误
如果你不确定某个包是否能删除,可以先注释掉(虽然 JSON 不支持注释,但你可以暂时移动到文本外保存);
Unity 会根据
manifest.json
自动下载对应的包,也会自动生成packages-lock.json
来锁定版本;清理完之后可以进入 Unity →
Window
→Package Manager
界面,确认是否有残留包
遇到游戏卡顿这么解决
Profiler.BeginSample("函数名");
和Profiler.EndSample();
是 Unity 提供的性能采样工具,用来手动标记并分析一段代码的性能消耗,特别适合做性能调优和查找耗时瓶颈。
可以先像下图一样打开分析工具,这样就可以查看是哪里出现了问题。
用下方两行代码可以查看代码,是那个函数出现了问题。进行逐步排查。
这是排查方法,如下:Profiler.BeginSample("函数名");这里是你需要排查的可能存在问题代码。Profiler.EndSample();
使用这个方式我们就可以知道是哪里那个函数运行时间很长,我们就可以根据找到的问题进行代码优化。
基本用法说明:using UnityEngine;void Update() {Profiler.BeginSample("MySample");// 👇 这里放你想分析性能的代码段SomeHeavyFunction();Profiler.EndSample(); }
在 Unity 的 Profiler 面板中会看到一条名为
"MySample"
的记录条,显示这段代码所消耗的帧时间(CPU)。
最好改成 try-finally 结构确保安全:Profiler.BeginSample("XXX"); try {// 需要分析的代码 } finally {Profiler.EndSample(); // 始终执行 }
采样嵌套必须一一对应
Profiler 也支持嵌套使用,但你必须一一成对:
Profiler.BeginSample("大函数"); Profiler.BeginSample("子函数");// do something...Profiler.EndSample(); // 结束子函数 Profiler.EndSample(); // 结束大函数
一旦嵌套错位,Unity 会直接报错,比如
EndSample()
太多或太少。
记得关闭开发时性能采样
Profiler.BeginSample()
是在 Editor 或开发版本中起作用的,发布正式版本时应避免滥用:#if UNITY_EDITOR Profiler.BeginSample("函数名"); // ... Profiler.EndSample(); #endif