当前位置: 首页 > news >正文

游戏开发问题记录

清理掉包里面的错误

清理了 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 → WindowPackage 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



 

http://www.dtcms.com/a/272374.html

相关文章:

  • 数字孪生技术为UI前端赋能:实现产品设计的快速原型验证
  • 小程序开发平台,自主开发小程序源码系统,多端适配,带完整的部署教程
  • Day57
  • 从零开始搭建深度学习大厦系列-2.卷积神经网络基础(5-9)
  • Redis性能基准测试
  • 影刀 RPA:实时追踪网页变化,第一时间推送通知
  • 知微传感Lkam系列线扫轮廓仪SDK例程篇:设置工作逻辑
  • Ubuntu 20.04 下**安装 FFmpeg 5.1
  • TCP 保活(KeepAlive)机制详解
  • 汽车功能安全-软件集成和验证(Software Integration Verification)【验证方法用例导出方法输出物】10
  • Java入门之JDK下载和安装
  • Thrust库介绍与使用
  • 《汇编语言:基于X86处理器》第7章 整数运算(1)
  • 机器人接入AI的发展前景:从开发者视角看技术融合与生态构建
  • JavaScript中的Screen对象:你的屏幕“身份证”
  • 城市规则管理列表实现逻辑
  • 【Note】Linux Kernel 实时技术深入:详解 PREEMPT_RT 与 Xenomai
  • 【React】MQTT + useEventBus 实现MQTT长连接以及消息分发
  • 昇腾 k8s vnpu配置
  • 在Linux中,如何使用grep awk sed find?
  • 链式二叉树数据结构(递归)
  • 自动化——bat——批量复制所选的文件
  • 微服务架构的演进:迈向云原生——Java技术栈的实践之路
  • SpringBoot整合腾讯云新一代行为验证码
  • RabbitMQ 幂等性
  • Allegro PCB 手动添加元器件全流程解析
  • expect 安装入门手册
  • 【保姆级教程】基于anji-plus-captcha实现行为验证码(滑动拼图+点选文字),前后端完整代码奉上!
  • 人工智能-基础篇-28-模型上下文协议--MCP请求示例(JSON格式,客户端代码,服务端代码等示例)
  • 开源入侵防御系统——CrowdSec