开发者控制台

Time:5 分钟

测试游戏时,查看游戏产生的输出和错误非常有用。在 Roblox Studio 中运行时,输出窗口会显示这些消息,但在测试游戏的实时运行版本时,应使用开发者控制台访问输出消息和许多其他详细信息。

打开控制台

根据平台的不同,可以按如下方式打开开发者控制台:

平台 方法

Windows / Mac 按 F9 键。

移动设备(手机或平板电脑) 在聊天中输入 /console 或从游戏中的 Settings(设置) 菜单打开控制台。

控制台部分

控制台顶部是一个快捷栏,显示严重错误和警告的数量、客户端内存使用情况以及平均 ping 的时间。单击这些项目中的任何一个都将在控制台中显示相关的详细信息。

https://developer.roblox.com/assets/bltb17e790bf8d5e8a1/Console-Summary-Bar.png

快捷栏下方有一系列选项卡,其中信息最丰富的是 Log (日志)、Memory (内存)和 Network (网络)。

日志

Log (日志)部分显示游戏中的脚本的诊断消息,按 Client (客户端)或 Server (服务器)分类。

https://developer.roblox.com/assets/blt0dd4dfd7840168b0/Console-Log-Client-Server-Toggle.png

  • 客户端上运行的 LocalScript|LocalScripts 的输出将显示在控制台的 Log (日志)→ Client (客户端)部分。运行游戏的任何人都可以查看这些本地输出消息。

  • Roblox 的服务器上运行的 Script|Scripts (脚本)输出将显示在控制台的 Log (日志)→ Server (服务器)部分。只有游戏的所有者或具有编辑权限的团队成员才能访问此部分。

通过切换以下复选框,还可以筛选日志中的输出消息:

https://developer.roblox.com/assets/bltb3529923660dd862/Console-Filter-Options.png

输出 通过在游戏的脚本中调用 print() 语句生成的消息。

信息 游戏生成的非错误或自定义输出语句的消息。

警告 表示是潜在问题但不是关键问题的消息。

错误 表示发生了严重事件的消息。

最后,Log (日志)→ Server (服务器)部分包含一个命令栏,允许游戏的编辑器运行任意 Lua 代码。请注意,此命令栏具有与 Script|Scripts (脚本)和 LocalScript|LocalScripts 相同的安全限制,这意味着它与 Studio 中的命令栏不同,它无法运行受保护的函数。

https://developer.roblox.com/assets/blt30a926434d64eac9/Console-Command-Bar.png

内存

模型、地形、部件、视觉效果、脚本、物理设备、音频等都会影响总内存使用。控制台的 Memory (内存)部分显示有关游戏内存使用情况的指标。

在视图中,总内存分为三类:

  • CoreMemory — 由 Roblox 引擎内置的进程(如网络、虚拟角色、GUI 元素等)使用的内存。

  • PlaceMemory — 构建游戏时由于直接选择而扩展的内存。

  • UntrackedMemory — 未标记的任意内存分配。

内存管理提示 »

PlaceMemory 分为几个子类别。下表提供了每个子类别的简要描述和减少内存使用的提示。

类别 描述 内存管理提示

HttpCache 从 Roblox 服务器加载的资源(图像、网格等)现在保存在内存的缓存中。 加载更少或更小的资源。

Instances 场景中的 Instances。 如果可能,请减少 Instances(管理器窗口中的对象)的总数。

Signals 在 Instances 之间触发的信号(在一个 Instance 上触发事件以在另一个 Instance 上触发事件)。 在 Instances 之间使用较少的事件连接。

LuaHeap 核心脚本(Roblox 客户端附带的脚本)和自定义脚本的堆内存。 编写节省内存的脚本。

Script Lua 脚本。 使用更少或更短的脚本。

PhysicsCollision 物理模拟的碰撞数据。 如果部件不需要移动,请将 BasePart/Anchored|Anchored 设置为 true。如果不需要与任何东西(包括玩家)碰撞,请将 BasePart/CanCollide|CanCollide 设置为 false

PhysicsParts 物理几何学和动力学。 使用更简单、更小或更少的部件。

GraphicsSolidModels 要呈现articles/3D Modeling with Parts|实体模型的物理数据 使用更少/更简单的实体模型,或将它们的 enum/RenderFidelity 设置为自动

GraphicsMeshParts MeshPart|MeshParts 的图形。 使用更少/更简单的articles/Mesh Parts|网格

GraphicsParticles 粒子系统的图形。 使用更少的粒子系统或产生更少的寿命较短的粒子。

GraphicsParts 部件的图形。 使用更少/更简单的部件。

GraphicsSpatialHash 常规渲染。 使用更少的部件、粒子和灯光(本质上是任何有助于渲染的内容)。

GraphicsTerrain 地形的图形。 使用更少的地形。

GraphicsTexture 纹理内存。 使用更少或更小的纹理。

GraphicsTextureCharacter 角色的纹理内存。 使用更少的独特角色外观。

Sounds 内存中的声音。 使用更少或更小的声音。

StreamingSounds 流媒体声音。 使用更少的流媒体声音。

TerrainVoxels 地形体素。 使用更少的地形。

TerrainPhysics 地形物理学。 对于靠近地形的对象,将 BasePart/CanCollide|CanCollide 设置为 false 和/或将 BasePart/Anchored|Anchored 设置为 true

Gui 通用 GUI 元素使用的内存。 减少或优化你的 GUI 实例使用。

Animation 用于动画数据的内存(姿势和 KeyframeSequence 缓存的数据),通常是虚拟角色动画。 尽可能少使用不同的动画并优化动画。

Navigation PathfindingService 的支持结构使用的内存。 优化使用并减少对 PathfindingService 的调用

网络

本部分揭示了游戏在运行时进行了多少次网络调用,包括通过 HttpService 进行的显式调用和由 Roblox 服务(如 DataStoreService)进行的网络请求。

顶部附近是按类型分类的游戏网络调用 Summary(摘要)。每种类型都包含有关请求次数、请求失败次数和时间统计信息的详细信息。

摘要下方是 **Details(详细信息)**部分,其中列出了每个单独的网络调用。每行显示 HTTP 方法(GET、POST 等) 以及状态代码、执行的时间、请求类型和请求 URL。单击列表中的任何行都会显示响应详细信息,例如:

https://developer.roblox.com/assets/blt5fda94fb79527d74/Console-Network-Response-Detail.png

***Roblox官方链接:开发者控制台