Type: concept
Confidence: 0.85
Created: 2026-04-16
Updated: 2026-04-16
Tags: UrhoXLua游戏引擎API游戏开发

UrhoX全局子系统

概述

UrhoX Lua API 在全局作用域预注册了18个只读单例对象,覆盖音频、渲染、输入、网络等核心功能,无需声明即可在任意脚本中直接访问。

关键内容

18个全局单例

变量名 类型 职责
audio Audio* 音频系统(播放/暂停/音量)
cache ResourceCache* 资源加载与缓存
console Console* 控制台输入输出
context Context* 引擎上下文(系统注册中心)
database Database* 数据库访问
debugHud DebugHud* 调试信息显示(FPS、内存等)
engine Engine* UrhoX引擎生命周期API</td> </tr> <tr> <td><code>eventHandler</code></td> <td>EventHandler*</td> <td>当前事件处理器</td> </tr> <tr> <td><code>eventSender</code></td> <td>EventSender*</td> <td>当前事件发送者</td> </tr> <tr> <td><code>fileSystem</code></td> <td>FileSystem*</td> <td>文件系统操作</td> </tr> <tr> <td><code>graphics</code></td> <td>Graphics*</td> <td>图形设备与分辨率查询</td> </tr> <tr> <td><code>input</code></td> <td>Input*</td> <td>键盘/鼠标/触摸输入</td> </tr> <tr> <td><code>localization</code></td> <td>[[Localization* 多语言本地化
log Log* 日志系统
network Network* 网络连接
renderer Renderer渲染器</td> <td>Renderer*
time Time* 时间与帧率
ui UI* 原生UI系统(已废弃,见UrhoX Lua开发准则

访问方式

每个全局对象同时提供直接变量访问和 Get 函数两种形式:

-- 直接访问(推荐)
local w = graphics:GetWidth()

-- 等价的函数形式
local w = GetGraphics():GetWidth()

常用模式

-- 获取分辨率(SetMode已禁用)
local physW, physH = graphics:GetWidth(), graphics:GetHeight()
local dpr = graphics:GetDPR()

-- 资源加载
local tex = cache:GetResource("Texture2D", "Textures/player.png")

-- 日志输出
log:Write(LOG_INFO, "message")

-- 时间步
-- 通过 Update 事件的 eventData 获取,而非 time 直接调用

全局变量系统

引擎还提供跨脚本共享的 Variant 键值存储:

SetGlobalVar("score", Variant(100))
local v = GetGlobalVar("score"):GetInt()
local all = GetGlobalVars()  -- 返回 VariantMap

来源

相关