System
系统
提供各类系统事件和相关信息函数列表
IsDedicatedServer
-
描述: 是不是专用服务器模式
-
描述: 专用服务器只执行服务器相关代码
-
范围: 服务端、客户端
返回字段:
| 返回字段 | 字段类型 | 说明 |
|---|---|---|
| isDS | boolean | 是不是专用服务器模式 |
if System:IsDedicatedServer() then Log:PrintLog("多人游玩时的服务器端") -- 只会运行在游戏服务器上endIsStandalone
-
描述: 是不是单机模式
-
描述: 单机模式时, 服务器和客户端代码都在本地执行
-
范围: 服务端、客户端
返回字段:
| 返回字段 | 字段类型 | 说明 |
|---|---|---|
| isStandalone | boolean | 是不是单机模式 |
if System:IsStandalone() then Log:PrintLog("单机模式")endIsServer
-
描述: 是不是服务器端
-
描述: 专用服务器或单机模式时返回true
-
范围: 服务端、客户端
-
警告: 单机模式时,IsServer和IsClient都返回true
返回字段:
| 返回字段 | 字段类型 | 说明 |
|---|---|---|
| isServer | boolean | 是不是服务器端 |
if System:IsServer() then Log:PrintLog("单机模式或者多人模式的服务器端") -- 多人环境下,只会运行在游戏服务器上endIsClient
-
描述: 是不是客户端
-
描述: 非专用服务器模式或单机模式时返回true
-
范围: 服务端、客户端
-
警告: 单机模式时,IsServer和IsClient都返回true
返回字段:
| 返回字段 | 字段类型 | 说明 |
|---|---|---|
| isClient | boolean | 是不是客户端 |
if System:IsClient() then Log:PrintLog("单机模式或者多人模式的客户端")endBindNotify
-
描述: 注册消息通知
-
范围: 服务端、客户端
参数列表:
| 参数 | 类型 | 说明 |
|---|---|---|
| MsgId | number | 消息id,消息id必须大于0 |
| Callback | function | 回调函数,当收到消息时此回调函数会被调用 |
| Ref | any | 一个可选参数 |
local msgId = 1005System:BindNotify(msgId, function (msgId, msg, playerId) Log:PrintLog("收到了", playerId, "发送的", msgId, msg.count, msg.text) end)System:BindNotify(msgId,self.printTips,self) --- 函数版function GameClient:printTips(msgId, msg) Log:PrintLog( msg.text)endUnbindNotify
-
描述: 注销消息通知
-
描述: 只提供msgId时,会注销此msgId的所有通知
-
范围: 服务端、客户端
参数列表:
| 参数 | 类型 | 说明 |
|---|---|---|
| MsgId | number | 消息id,要注销的消息的消息id |
| Callback | function | 回调函数,之前注册消息通知时的回调函数,如果为nil则注销所有这个msgId的消息通知 |
local msgId = 1005System:UnbindNotify(msgId)UnbindAllNotify
-
描述: 注销所有消息通知
-
范围: 服务端、客户端
System:UnbindAllNotify() --注销所有的消息通知SendToClient
-
描述: 发送消息到客户端
-
范围: 服务端
参数列表:
| 参数 | 类型 | 说明 |
|---|---|---|
| PlayerId | number | 接收消息客户端的玩家id |
| MsgId | number | 消息id |
| Msg | table | 消息的内容,消息可以是number,string,bool或者table |
local msgId = 1005System:SendToClient(playerId, msgId, {count = 3, text = "你好"})SendToAllClients
-
描述: 发送消息到所有的客户端
-
范围: 服务端
参数列表:
| 参数 | 类型 | 说明 |
|---|---|---|
| MsgId | number | 消息id |
| Msg | table | 消息的内容,消息可以是number,string,bool或者table |
local msgId = 1006System:SendToAllClients(msgId, {notify = "所有客户端都会收到这条消息"})SendToServer
-
描述: 发送消息到服务器端
-
范围: 客户端
参数列表:
| 参数 | 类型 | 说明 |
|---|---|---|
| MsgId | number | 消息id |
| Msg | table | 消息内容,消息可以是number,string,bool或者table |
local msgId = 1005System:SendToServer(msgId, { message = "这是一条来自客户端的消息" })RegisterEvent
-
描述: 注册系统事件处理函数.系统事件由外部发送到此游戏
-
范围: 服务端、客户端
参数列表:
| 参数 | 类型 | 说明 |
|---|---|---|
| EventName | string | 事件名称 |
| Callback | function() | 当事件发生时会调用此回调函数 |
| Args | … | 可变参数,事件发生时这些参数会一起传递到回调函数,可变参数在前,事件参数在后 |
返回字段:
| 返回字段 | 字段类型 | 说明 |
|---|---|---|
| eventId | number | 事件处理函数id |
System:RegisterEvent(Events.ON_BEGIN_PLAY, function () Log:PrintLog("On Begin Play") end)UnregisterEvent
-
描述: 注销系统事件
-
范围: 服务端、客户端
参数列表:
| 参数 | 类型 | 说明 |
|---|---|---|
| EventName | string | 事件名称 |
| Callback | function() | 可选参数,注册系统事件处理时提供的回调函数 |
local eventId = System:RegisterEvent(Events.ON_BEGIN_PLAY, function () Log:PrintLog("On Begin Play") end)System:UnregisterEvent(Events.ON_BEGIN_PLAY)UnregisterEventById
-
描述: 注销系统事件
-
范围: 服务端、客户端
参数列表:
| 参数 | 类型 | 说明 |
|---|---|---|
| EventName | string | 事件名称 |
| EventId | number | 注册事件处理函数时返回的id |
local eventId = System:RegisterEvent(Events.ON_BEGIN_PLAY, function () Log:PrintLog("On Begin Play") end)System:UnregisterEventById(Events.ON_BEGIN_PLAY, eventId)RegisterGameEvent
-
描述: 注册游戏内事件处理函数.游戏内事件由编程元件作者定义,并在需要时在元件脚本调用System.FireGameEvent来发送
-
范围: 服务端、客户端
参数列表:
| 参数 | 类型 | 说明 |
|---|---|---|
| EventName | string | 事件名称 |
| Callback | function() | 事件发生时会调用此回调函数 |
| Args | … | 可变参数,事件发生时会一起传递给回调函数,可变参数在前,事件参数在后 |
返回字段:
| 返回字段 | 字段类型 | 说明 |
|---|---|---|
| eventId | number | 事件处理函数id |
local MyEvent = "我的自定义事件"System:RegisterGameEvent(MyEvent, function () Log:PrintLog("发生了我自定义的游戏事件") end)UnregisterGameEvent
-
描述: 注销游戏内事件处理函数
-
范围: 服务端、客户端
参数列表:
| 参数 | 类型 | 说明 |
|---|---|---|
| EventName | string | 事件名称 |
| Callback | function() | 可选参数,注册游戏内事件处理函数时提供的回调函数 |
local MyEvent = "我的自定义事件"System:RegisterGameEvent(MyEvent, function () Log:PrintLog("发生了我自定义的游戏事件") end)System:UnregisterGameEvent(MyEvent)UnregisterGameEventById
-
描述: 注销游戏内事件处理函数
-
范围: 服务端、客户端
参数列表:
| 参数 | 类型 | 说明 |
|---|---|---|
| EventName | string | 事件名称 |
| EventId | number | 注册游戏内事件处理函数时返回的id |
local MyEvent = "我的自定义事件"local eventId = System:RegisterGameEvent(MyEvent, function () Log:PrintLog("发生了我自定义的游戏事件") end)System:UnregisterGameEventById(MyEvent, eventId)FireGameEvent
-
描述: 触发游戏内事件
-
范围: 服务端、客户端
参数列表:
| 参数 | 类型 | 说明 |
|---|---|---|
| EventName | string | 事件名称 |
| Args | … | 事件附带的可变参数 |
local MyEvent = "我的自定义事件"System:FireGameEvent(MyEvent)FireSignEvent
-
描述: 触发信号
-
范围: 服务端、客户端
参数列表:
| 参数 | 类型 | 说明 |
|---|---|---|
| EventName | string | 信号事件名称 |
| PlayerIDs | number[] | 在哪些玩家端触发信号; 不传时只会在当前端触发; 如果需要通知多个玩家触发,则需要在服务端进行调用,并传入需要触发信号的玩家id数组 |
System:FireSignEvent("111")RegisterSignEvent
-
描述: 注册信号处理函数
-
范围: 客户端
参数列表:
| 参数 | 类型 | 说明 |
|---|---|---|
| EventName | string | 信号事件名称 |
| Func | function() | 信号发生时的回调函数 |
返回字段:
| 返回字段 | 字段类型 | 说明 |
|---|---|---|
| signEventId | number | 注册信号事件ID |
local MyEvent = "我的自定义信号"local eventId = System:RegisterSignEvent(MyEvent, function () Log:PrintLog("发生了我的自定义信号事件") end)UnregisterSignEvent
-
描述: 注销信号处理函数
-
范围: 客户端
参数列表:
| 参数 | 类型 | 说明 |
|---|---|---|
| SignEventId | number | 注册信号事件时返回的ID |
local MyEvent = "我的自定义信号"local eventId = System:RegisterSignEvent(MyEvent, function () Log:PrintLog("发生了我的自定义信号事件") end)System:UnregisterSignEvent(eventId)UnregisterAllSignEvent
-
描述: 注销所有信号处理事件
-
范围: 客户端
System:UnregisterAllSignEvent()GetScriptParentID
-
描述: 获取当前脚本挂载的元件ID
-
范围: 服务端、客户端
返回字段:
| 返回字段 | 字段类型 | 说明 |
|---|---|---|
| elmentId | number | 元件ID |
local elementId = System:GetScriptParentID()