Skip to content

Editor

编辑器顶层对象,通过全局变量 editor 访问,提供服务获取、试玩控制、日志与插件管理。

Overview

Editor 是编辑器 Lua 环境注入的顶层入口,通过全局变量 editor 直接访问;它负责获取编辑器服务、控制试玩、保存地图、执行试玩代码以及读写编辑器日志。

Public API

GetService

按照服务名称从编辑器环境中获取对应的服务实例。传入参数为服务名称字符串,服务存在时返回对应实例,服务不存在时返回空值。

参数

参数类型说明
serviceNameString服务名(如 "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")
end

IsMapDirty

判断当前地图是否存在未保存的修改。存在未保存修改时返回 true,否则返回 false。

返回值

类型说明
Bool有未保存修改返回 true

调用 IsMapDirty

lua
-- @runtime client

local result = editor:IsMapDirty()  -- 返回 Bool
if result then
    print("调用结果为 true")
else
    print("调用结果为 false")
end

ExecuteGameCode

在编辑器当前进行的试玩环境中执行一段游戏代码。调用时传入一个表示游戏代码的字符串,该方法没有返回值。

注意: 调用前必须已经启动试玩。code 是要在试玩环境中执行的 Lua 源码字符串,不是枚举值。

参数

参数类型说明
codeString要执行的 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
end

Log

向编辑器日志输出一条文本内容。参数 content 为要写入日志的字符串,该方法没有返回值。

参数

参数类型说明
contentString要输出的日志内容

调用 Log

lua
-- @runtime client

local content = "default"  -- String
editor:Log(content)
print("调用完成", editor)