Skip to content
SystemUtil

工具 / SystemUtil

SystemUtil Class

状态信息获取工具

判断当前环境状态是否是客户端、服务端、移动端。获取版本号等信息

Table of contents

Properties

currentPlatform: RuntimePlatform
判定当前程序的运行平台,返回值参考Type.RuntimePlatform
isPIE: boolean
判断当前是否是编辑器运行模式

Accessors

onExit(): MulticastDelegate<() => void> client
添加退出游戏时执行的回调函数
onPause(): MulticastDelegate<() => void> client
添加OnPause开始时执行的回调函数
onResume(): MulticastDelegate<(leaveDuration: any) => void> client
添加OnPause结束时执行的回调函数
roomId(): string
获取当前房间Id,如果是单机游戏,则返回null
sceneId(): string
获取当前场景的SceneId

Methods

closeLoadingView(): void client
关闭引擎初始化ui
getCurrentEnv(): string
获取当前环境
getEditorVersion(): string
获取编辑器版本号
getFullEditorVersion(): string
获取完整编辑器版本号
getGameId(): string
获取当前游戏GameId
getVersion(): string
获取当前游戏版本
isClient(): boolean
是否客户端运行
isMobile(): boolean
判断当前是否是移动端
isServer(): boolean
是否服务器运行

Properties

currentPlatform

Static currentPlatform: RuntimePlatform

判定当前程序的运行平台,返回值参考Type.RuntimePlatform

使用示例:创建一个名为SystemExample的脚本,放置在对象栏中,打开脚本,将原本内容修改为如下内容,保存并运行游戏,会将当前运行环境打印到控制台
ts
@Component
export default class SystemExample extends Script {

    protected onStart(): void {
        this.test();
    }

    private async test(): Promise<void> {
        console.log("当前程序的运行平台", SystemUtil.currentPlatform)
    }

}
@Component
export default class SystemExample extends Script {

    protected onStart(): void {
        this.test();
    }

    private async test(): Promise<void> {
        console.log("当前程序的运行平台", SystemUtil.currentPlatform)
    }

}

isPIE

Static isPIE: boolean

判断当前是否是编辑器运行模式

Accessors

onExit

Static get onExit(): MulticastDelegate<() => void> client

添加退出游戏时执行的回调函数

Precautions

只在233悬浮球退出和PIE关闭窗口时生效。悬浮球退出会计时5s,5s后会强制杀进程.

Returns

MulticastDelegate<() => void>返回一个事件监听器

onPause

Static get onPause(): MulticastDelegate<() => void> client

添加OnPause开始时执行的回调函数

Precautions

只在Android和IOS生效。触发时机有切入后台、息屏和播广告。 部分机型切入后台不会暂停游戏所以不会触发该回调或暂停时间很短,可以通过游戏背景音乐是否持续播放来判断。

Returns

MulticastDelegate<() => void>返回一个事件监听器

onResume

Static get onResume(): MulticastDelegate<(leaveDuration: any) => void> client

添加OnPause结束时执行的回调函数

Precautions

只在Android和IOS生效。触发时机有切入后台、息屏和播广告后回到游戏。 部分机型切入后台不会暂停游戏所以不会触发该回调或暂停时间很短,可以通过游戏背景音乐是否持续播放来判断。

Returns

MulticastDelegate<(leaveDuration: any) => void>返回一个事件监听器

roomId

Static get roomId(): string

获取当前房间Id,如果是单机游戏,则返回null

Returns

string当前房间Id,如果是单机游戏,则返回null
使用示例:创建一个名为SystemExample的脚本,放置在对象栏中,打开脚本,将原本内容修改为如下内容,保存并运行游戏,输出当前房间Id,如果是单机游戏,则输出null
ts
@Component
export default class SystemExample extends Script {

    protected onStart(): void {
        this.test();
    }

    private async test(): Promise<void> {
        if (!SystemUtil.isClient()) return;
        const roomId = SystemUtil.roomId;
        console.log(`roomId: ${verroomIdsion}`);
    }

}
@Component
export default class SystemExample extends Script {

    protected onStart(): void {
        this.test();
    }

    private async test(): Promise<void> {
        if (!SystemUtil.isClient()) return;
        const roomId = SystemUtil.roomId;
        console.log(`roomId: ${verroomIdsion}`);
    }

}

sceneId

Static get sceneId(): string

获取当前场景的SceneId

Returns

使用示例:创建一个名为SystemExample的脚本,放置在对象栏中,打开脚本,将原本内容修改为如下内容,保存并运行游戏,输出当前场景的SceneId
ts
@Component
export default class SystemExample extends Script {

    protected onStart(): void {
        this.test();
    }

    private async test(): Promise<void> {
        if (!SystemUtil.isClient()) return;
        const sceneId = SystemUtil.sceneId;
        console.log(`sceneId: ${sceneId}`);
    }

}
@Component
export default class SystemExample extends Script {

    protected onStart(): void {
        this.test();
    }

    private async test(): Promise<void> {
        if (!SystemUtil.isClient()) return;
        const sceneId = SystemUtil.sceneId;
        console.log(`sceneId: ${sceneId}`);
    }

}
string当前场景的SceneId

Methods

closeLoadingView

Static closeLoadingView(): void client

关闭引擎初始化ui

使用示例:创建一个名为SystemExample的脚本,放置在对象栏中,打开脚本,将原本内容修改为如下内容,保存并运行游戏,执行时将关闭引擎ui
ts
@Component
export default class SystemExample extends Script {

    protected onStart(): void {
        if (!SystemUtil.isClient()) return;
        InputUtil.onKeyDown(Keys.F, () => {
            SystemUtil.closeLoadingView();
        }))
    }
}
@Component
export default class SystemExample extends Script {

    protected onStart(): void {
        if (!SystemUtil.isClient()) return;
        InputUtil.onKeyDown(Keys.F, () => {
            SystemUtil.closeLoadingView();
        }))
    }
}

getCurrentEnv

Static getCurrentEnv(): string

获取当前环境

Returns

string当前环境,返回值包含(Dev/Test/Meta/Pre/Online/dev-oversea/test-oversea/pre-oversea/online-oversea/tc-sa-saopaulo-playza)
使用示例:创建一个名为SystemExample的脚本,放置在对象栏中,打开脚本,将原本内容修改为如下内容,保存并运行游戏,会将当前环境打印到控制台
ts
@Component
export default class SystemExample extends Script {

    protected onStart(): void {
        this.test();
    }

    private async test(): Promise<void> {
        console.log("当前环境", SystemUtil.getCurrentEnv())
    }

}
@Component
export default class SystemExample extends Script {

    protected onStart(): void {
        this.test();
    }

    private async test(): Promise<void> {
        console.log("当前环境", SystemUtil.getCurrentEnv())
    }

}

getEditorVersion

Static getEditorVersion(): string

获取编辑器版本号

Returns

string当前编辑器版本号
使用示例:创建一个名为SystemExample的脚本,放置在对象栏中,打开脚本,将原本内容修改为如下内容,保存并运行游戏,会将当前编辑器版本号打印到控制台
ts
@Component
export default class SystemExample extends Script {

    protected onStart(): void {
        this.test();
    }

    private async test(): Promise<void> {
        console.log("当前编辑器版本号", SystemUtil.getEditorVersion())
    }

}
@Component
export default class SystemExample extends Script {

    protected onStart(): void {
        this.test();
    }

    private async test(): Promise<void> {
        console.log("当前编辑器版本号", SystemUtil.getEditorVersion())
    }

}

getFullEditorVersion

Static getFullEditorVersion(): string

获取完整编辑器版本号

Returns

string当前完整编辑器版本号
使用示例:创建一个名为SystemExample的脚本,放置在对象栏中,打开脚本,将原本内容修改为如下内容,保存并运行游戏,会将当前完整编辑器版本号打印到控制台
ts
@Component
export default class SystemExample extends Script {

    protected onStart(): void {
        this.test();
    }

    private async test(): Promise<void> {
        console.log("当前完整编辑器版本号", SystemUtil.getFullEditorVersion())
    }

}
@Component
export default class SystemExample extends Script {

    protected onStart(): void {
        this.test();
    }

    private async test(): Promise<void> {
        console.log("当前完整编辑器版本号", SystemUtil.getFullEditorVersion())
    }

}

getGameId

Static getGameId(): string

获取当前游戏GameId

Returns

string当前游戏GameId
使用示例:创建一个名为SystemExample的脚本,放置在对象栏中,打开脚本,将原本内容修改为如下内容,保存并运行游戏,输出当前游戏GameId pc端输出为空,移动端输出为游戏GameId
ts
@Component
export default class SystemExample extends Script {

    protected onStart(): void {
        this.test();
    }

    private async test(): Promise<void> {
        if (!SystemUtil.isClient()) return;
        const gameId = SystemUtil.getGameId();
        console.log(`gameId: ${gameId}`);
    }

}
@Component
export default class SystemExample extends Script {

    protected onStart(): void {
        this.test();
    }

    private async test(): Promise<void> {
        if (!SystemUtil.isClient()) return;
        const gameId = SystemUtil.getGameId();
        console.log(`gameId: ${gameId}`);
    }

}

getVersion

Static getVersion(): string

获取当前游戏版本

Returns

string当前游戏版本
使用示例:创建一个名为SystemExample的脚本,放置在对象栏中,打开脚本,将原本内容修改为如下内容,保存并运行游戏,输出当前游戏版本 pc端输出为空,移动端输出为游戏版本
ts
@Component
export default class SystemExample extends Script {

    protected onStart(): void {
        this.test();
    }

    private async test(): Promise<void> {
        if (!SystemUtil.isClient()) return;
        const version = SystemUtil.getVersion();
        console.log(`version: ${version}`);
    }

}
@Component
export default class SystemExample extends Script {

    protected onStart(): void {
        this.test();
    }

    private async test(): Promise<void> {
        if (!SystemUtil.isClient()) return;
        const version = SystemUtil.getVersion();
        console.log(`version: ${version}`);
    }

}

isClient

Static isClient(): boolean

是否客户端运行

Returns

boolean是否客户端运行
使用示例:创建一个名为SystemExample的脚本,放置在对象栏中,打开脚本,将原本内容修改为如下内容,保存并运行游戏,会将当前运行环境打印到控制台
ts
@Component
export default class SystemExample extends Script {

    protected onStart(): void {
        this.test();
    }

    private async test(): Promise<void> {
        if (SystemUtil.isClient()) {
            console.log("当前是客户端");
        } else if (SystemUtil.isServer()) {
            console.log("当前是服务端");
        }
    }

}
@Component
export default class SystemExample extends Script {

    protected onStart(): void {
        this.test();
    }

    private async test(): Promise<void> {
        if (SystemUtil.isClient()) {
            console.log("当前是客户端");
        } else if (SystemUtil.isServer()) {
            console.log("当前是服务端");
        }
    }

}

isMobile

Static isMobile(): boolean

判断当前是否是移动端

Returns

boolean是否是移动端
使用示例:创建一个名为SystemExample的脚本,放置在对象栏中,打开脚本,将原本内容修改为如下内容,保存并运行游戏,会将当前是否是移动端打印到控制台
ts
@Component
export default class SystemExample extends Script {

    protected onStart(): void {
        this.test();
    }

    private async test(): Promise<void> {
        console.log("当前是否是移动端", SystemUtil.isMobile())
    }

}
@Component
export default class SystemExample extends Script {

    protected onStart(): void {
        this.test();
    }

    private async test(): Promise<void> {
        console.log("当前是否是移动端", SystemUtil.isMobile())
    }

}

isServer

Static isServer(): boolean

是否服务器运行

Returns

boolean是否服务器运行
使用示例:创建一个名为SystemExample的脚本,放置在对象栏中,打开脚本,将原本内容修改为如下内容,保存并运行游戏,会将当前运行环境打印到控制台
ts
@Component
export default class SystemExample extends Script {

    protected onStart(): void {
        this.test();
    }

    private async test(): Promise<void> {
        if (SystemUtil.isClient()) {
            console.log("当前是客户端");
        } else if (SystemUtil.isServer()) {
            console.log("当前是服务端");
        }
    }

}
@Component
export default class SystemExample extends Script {

    protected onStart(): void {
        this.test();
    }

    private async test(): Promise<void> {
        if (SystemUtil.isClient()) {
            console.log("当前是客户端");
        } else if (SystemUtil.isServer()) {
            console.log("当前是服务端");
        }
    }

}