主题
Editor
编辑器顶层对象,通过全局变量 editor 访问,提供服务获取、试玩控制、日志与插件管理。
Overview
Editor 是编辑器 Lua 环境注入的顶层入口,通过全局变量 editor 直接访问;它负责获取编辑器服务、控制试玩、保存地图、执行试玩代码以及读写编辑器日志。
Public API
GetService
按照服务名称从编辑器环境中获取对应的服务实例。传入参数为服务名称字符串,服务存在时返回对应实例,服务不存在时返回空值。
参数
| 参数 | 类型 | 说明 |
|---|---|---|
serviceName | String | 服务名(如 "World") |
返回值
| 类型 | 说明 |
|---|---|
Any | 对应的服务实例;服务不存在时返回 nil |
获取 World 服务
lua
-- @runtime client
local world = editor:GetService("World")
local units = world:GetDescendants()
print("当前场景单位数:", #units)RunGame
在编辑器中开始当前地图的试玩。该方法没有参数,也没有返回值。
注意: 该调用会把编辑器切换到试玩状态。自动化脚本应等待试玩真正启动后再执行依赖试玩环境的操作,并在结束后调用 StopGame 或使用编辑器停止试玩。
调用 RunGame
lua
-- @runtime client
editor:RunGame()
print("调用完成", editor)StopGame
停止编辑器内正在进行的试玩。该方法没有参数,也没有返回值。
注意: 该调用用于结束已启动的试玩;编辑器本来处于编辑状态时无需调用。
调用 StopGame
lua
-- @runtime client
editor:StopGame()
print("调用完成", editor)SaveMap
保存当前地图。当保存接口可用并完成保存操作时返回 true,当保存接口不可用时返回 false。
返回值
| 类型 | 说明 |
|---|---|
Bool | 保存接口不可用时返回 false |
调用 SaveMap
lua
-- @runtime client
local result = editor:SaveMap() -- 返回 Bool
if result then
print("调用结果为 true")
else
print("调用结果为 false")
endIsMapDirty
判断当前地图是否存在未保存的修改。存在未保存修改时返回 true,否则返回 false。
返回值
| 类型 | 说明 |
|---|---|
Bool | 有未保存修改返回 true |
调用 IsMapDirty
lua
-- @runtime client
local result = editor:IsMapDirty() -- 返回 Bool
if result then
print("调用结果为 true")
else
print("调用结果为 false")
endExecuteGameCode
在编辑器当前进行的试玩环境中执行一段游戏代码。调用时传入一个表示游戏代码的字符串,该方法没有返回值。
注意: 调用前必须已经启动试玩。code 是要在试玩环境中执行的 Lua 源码字符串,不是枚举值。
参数
| 参数 | 类型 | 说明 |
|---|---|---|
code | String | 要执行的 Lua 代码 |
在已启动的试玩环境中输出日志
lua
-- @runtime client
local code = [[print("Hello from game runtime")]]
editor:ExecuteGameCode(code)GetLog
获取编辑器日志的文本内容,返回值为字符串。日志中包含此前通过输出日志等操作写入的内容。
返回值
| 类型 | 说明 |
|---|---|
String | 编辑器日志文本 |
调用 GetLog
lua
-- @runtime client
local result = editor:GetLog() -- 返回 String
if result ~= nil then
print(result)
if result ~= "" then
print("返回了非空字符串")
end
endLog
向编辑器日志输出一条文本内容。参数 content 为要写入日志的字符串,该方法没有返回值。
参数
| 参数 | 类型 | 说明 |
|---|---|---|
content | String | 要输出的日志内容 |
调用 Log
lua
-- @runtime client
local content = "default" -- String
editor:Log(content)
print("调用完成", editor)