📚 Client/GUI

📒 Static Property

📘 GUI.MousePos

获取玩家鼠标坐标位置(2D平面坐标)。

GUI.MousePos: Vector

📘 GUI.MouseScroll

获取玩家鼠标滚轮滚动偏移量(自动归0)。

(向上 > 0 > 向下 )

GUI.MouseScroll: float

📘 GUI.FixedMouseScroll

获取玩家鼠标滚轮滚动(修正)偏移量(自动归0),此属性停留在UI时永远返回0(避免误操作)。

(向上 > 0 > 向下 )

GUI.FixedMouseScroll: float

📘 GUI.InputAwayTime

获取玩家输入(键盘)空闲时间(玩家在此时间内没有使用键盘)。

GUI.InputAwayTime: float

📘 GUI.ControlAwayTime

获取玩家控制(鼠标)空闲时间(玩家在此时间内没有使用及移动鼠标)。

GUI.ControlAwayTime: float

📒 Property

📘 gui.Package

获取当前GUI实例的包名(只读)。

gui.Package: string

📘 gui.Component

获取当前GUI实例的组件名(只读)。

gui.Component: string

📘 gui.Panel

获取当前GUI实例的UIPanel对象,通常情况下无需使用此属性。

gui.Panel: UIPanel

📘 gui.UI

获取当前GUI实例的根对象(GObject),通常情况下无需使用此属性。

gui.UI: GObject

📘 gui.SortingOrder

设置当前GUI实例的层级,默认为0(范围:-1~50),请勿频繁调用此代码。

gui.SortingOrder = 0; //int

📒 Static Function

📘 GUI.Create()

生成一个新的GUI实例

function GUI.Create( package: string, component: string ): GUI
//创建一个包名为ABC、组件名为ComA的GUI实例
GUI.Create("ABC", "ComA");

📘 GUI.GetModelPreview()

获取指定已导入模型的缩略图(包括外部导入模型),返回类型为FGUI可读的NTexture,可供FGUI直接使用。

function GUI.GetModelPreview( model: int ): NTexture
let texture = GUI.GetModelPreview(2000);
xxxxx.texture = texture; //FGUI API

📘 GUI.TextureToUI()

将引擎内原生\外部导入的图片转换为FGUI可读类型(NTexture)。

function GUI.TextureToUI( texture: int ): NTexture
let texture = GUI.TextureToUI(10000);
xxxxx.texture = texture; //FGUI API

📘 GUI.RemoveAll()

移除并销毁所有GUI实例(gui.Remove())。

function GUI.RemoveAll()

📘 GUI.WorldPosToUI()

获取世界坐标(3D)转换后的UI(2D)坐标。

function GUI.WorldPosToUI( worldPos: Vector ): Vector2

📘 GUI.PopupMenu()

创建弹出菜单(类似右键菜单)。

function GUI.PopupMenu( data: any )
GUI.PopupMenu(
    {
        Title: "Test Menu",
        Width: 300,
        Items: [
            {
                Item: "Item 1",
                OnClick: () => {
                    Debug.Log("Clicked Item 1");
                }
            }, {
                Item: "Item 2",
                OnClick: () => {
                    Debug.Log("Clicked Item 2");
                }
            }, {
                Item: "-" //Seperator
            }, {
                Item: "Item 3",
                OnClick: () => {
                    Debug.Log("Clicked Item 3");
                }
            }
        ]
    }
);

📘 GUI.HidePopup()

关闭(隐藏)任何弹出类型的窗口、菜单。

function GUI.HidePopup()

📘 GUI.SetPureMode()

设置GUI纯净模式开关(是否渲染UI),此属性可能有助于拍摄模式。

注意:此模式同时属于引擎内置功能,玩家可能通过快捷键或[Esc]进行开关。

function GUI.SetPureMode( active: bool )

📘 GUI.GetPureMode()

获取GUI纯净模式开关。

function GUI.GetPureMode(): bool

📘 GUI.SetCursor()

设置当前使用的光标ID,默认为0,具体类型样式参考《世界资源实例汇总》

每次加载新的世界场景后,光标样式将重置到默认值。

function GUI.SetCursor( cursorID: int )

📘 GUI.GetCursor()

获取当前使用的光标ID,默认为0

function GUI.GetCursor(): int

📘 GUI.SetCursorActive()

设置鼠标是否可见,通常游戏时不可见,菜单或需要操作UI时可见。

每次加载新的世界场景后,此属性将重置到默认值(可见)。

注意:当弹出操作UI时会自动转变为可见状态,开发者无需过多干预这部分逻辑。

function GUI.SetCursorActive( active: bool = true )

📘 GUI.GetCursorActive()

获取鼠标是否可见。

function GUI.GetCursorActive(): bool

📘 GUI.SetCrosshair()

设置准星样式ID,默认0

function GUI.SetCrosshair( crosshair: int )

📘 GUI.GetCrosshair()

获取准星样式ID。

function GUI.GetCrosshair(): int

📘 GUI.SetCrosshairActive()

设置准星是否可见,默认false

function GUI.SetCrosshairActive( active: bool )

📘 GUI.GetCrosshairActive()

获取准星是否可见。

function GUI.GetCrosshairActive(): bool

📘 GUI.SetCrosshairColor()

设置准星默认颜色,默认Color(255, 255, 255)

function GUI.SetCrosshairColor( color: Color )

📘 GUI.GetCrosshairColor()

获取准星默认颜色。

function GUI.GetCrosshairColor(): Color

📘 GUI.SetCrosshairScale()

设置准星默认缩放大小,默认1.0

function GUI.SetCrosshairScale( scale: float )

📘 GUI.GetCrosshairScale()

获取准星默认缩放。

function GUI.GetCrosshairScale(): float

📘 GUI.FocusCrosshair()

激活一次准星反馈,例如击中后的动画效果。

动画效果会在指定time时间后自动复原。

function GUI.FocusCrosshair( time: float = 0.5, crosshair: int = -1, scale: float = 1.2, color: Color = Color(255, 255, 255) )
  • time激活一次的动画时间
  • crosshair激活时的临时准星ID(默认-1,表示使用当前准星)
  • scale激活时的准星缩放(缩放大小,而非缩放倍数)
  • color激活时的准星颜色

📘 GUI.FocusCrosshairText()

激活一次准星文本反馈(准星下方的文本标签)。

如果time参数填写为0,则表示文本将持续存在,否则将在指定时间内淡出。

function GUI.FocusCrosshairText( text: string, time: float = 1.5 )

📘 GUI.IsOccupied()

获取当前是否UI界面被占用(使用中)。

举例:当界面主菜单、游戏设置、多人游戏浏览器、NativeMenu优先性界面正在显示时,此方法将返回true

function GUI.IsOccupied(): bool

📘 GUI.GetKey()

获取指定按键是否正在按住。

function GUI.GetKey( key: string, isForce: bool = false ): bool
  • isForce是否强制获取(不考虑UI占用状态)

📘 GUI.GetKeyDown()

获取指定按键是否正在按下。

注意:此方法仅在实时帧中有意义,单帧检测应该使用GetKey()

function GUI.GetKeyDown( key: string, isForce: bool = false ): bool
  • isForce是否强制获取(不考虑UI占用状态)

📘 GUI.GetKeyUp()

获取指定按键是否正在抬起。

注意:此方法仅在实时帧中有意义,单帧检测应该使用GetKey()

function GUI.GetKeyUp( key: string, isForce: bool = false ): bool
  • isForce是否强制获取(不考虑UI占用状态)

📘 GUI.SetChatPanelActive()

设置游戏聊天框启用开关,当聊天框被禁止后,玩家将无法显示或开启聊天框。

此功能主要用于主菜单界面,此时通常不希望玩家使用“聊天”功能,在Main场景中是默认被禁止的。

function GUI.SetChatPanelActive( active: bool )

📘 GUI.GetChatPanelActive()

获取游戏聊天框开关。

function GUI.GetChatPanelActive(): bool

📘 GUI.SetChatPanelPivot()

设置游戏聊天框锚点位置(强制),默认值为-1(遵循游戏默认设置),通过此方法设定位置后,即使玩家在游戏选项设置了锚点位置,也会优先使用当前方法所设置的位置。

此功能适用于部分U丰富的模组,可能不希望聊天框占用模组UI位置(例如血条、状态条、信息面板等),可以使用此方法强制设定聊天框位置。

function GUI.SetChatPanelPivot( pivot: int = -1 )
GUI.SetChatPanelPivot(-1); //Use engine config (default)
GUI.SetChatPanelPivot(0); //Change pivot to Left_Top
GUI.SetChatPanelPivot(1); //Change pivot to Left_Center
GUI.SetChatPanelPivot(2); //Change pivot to Left_Bottom

📘 GUI.GetChatPanelPivot()

获取游戏聊天框锚点位置。

function GUI.GetChatPanelPivot(): int

📘 GUI.CreateNativeView()

打开一个引擎内置UI面板(如设置、服务器列表、MOD管理器等)。

function GUI.CreateNativeView( int type, Action onDisable = null )
ID 面板描述
0 开发者界面(关于界面)
1 游戏设置
2 多人游戏浏览器
4 MOD模组管理

尽管有些ID没有被表格记录,但有可能仍然是有内容的,但未被记录的ID通常不具备通用性意义,在打开时将会被引擎阻断。

📘 GUI.ExistNativeView()

检查某个引擎内置UI界面是否存在(被打开)。

function GUI.ExistNativeView( type: int ): bool

📘 GUI.DestroyNativeView()

关闭一个引擎内置UI面板。

function GUI.DestroyNativeView(type: int = -1, hasEffect: bool = true)
//如果不填写参数(-1),则默认关闭所有内置UI面板
//如果hasEffect == false则立即关闭面板

📘 GUI.BindGameMenuButton()

绑定当前场景自定义ESC菜单按钮。

此方法适用于对模组主菜单没有特殊\高级自定义需求(否则应该考虑使用FairyGUI自制菜单),可以通过此方法快速的建立一个游戏原生主菜单

注意:此方法通常只需要在主菜单场景执行一次,绑定代码只在当前场景生效,切换场景后将会自动重置默认绑定

此方法支持绑定内置(宏)按钮,这将直接引用引擎内置按钮(功能及翻译),详情可参考下方表格。

如果绑定的是一个内置按钮,则只需要填写参数0即可。

内置按钮(宏) 说明
@default 绑定默认引擎菜单(游戏选项、多人游戏、地图编辑器、开发者名单、引擎首页、退出游戏……)
@space 绑定显示空行(分割显示)
@options 游戏选项
@multiplayer 多人游戏浏览器
@mapeditor 地图编辑器
@developers 开发者名单
@native 沙盘引擎首页(模组选择页)
@quit 退出游戏

注意:当玩家处于非主菜单(初始Main场景)界面时,引擎会自动补充继续游戏返回主菜单额外的菜单按钮。

function GUI.BindGameMenuButton( titleOrKey: string, info: string = null, callback: Action = null )

以下是一个示例。

function OnScriptLoad()
{
    //Custom Item
	GUI.BindGameMenuButton("启动主机", "建立本地联机服务器", () => {
		CreateHost("mapname", "scriptname");
	});
	GUI.BindGameMenuButton("[color=#ffff00]加入本地服务器[/color]", "加入本地服务器(127.0.0.1)", () => {
		ConnectHost("127.0.0.1");
	});
 
    //Internal Item
    GUI.BindGameMenuButton("@space");
    GUI.BindGameMenuButton("@mapeditor");
}

📘 GUI.UnbindAllGameMenuButton()

取消绑定所有主菜单界面按钮项目(包括引擎默认按钮)。

注意:此方法会清空所有菜单按钮,如果希望重置为默认引擎按钮,应该手动执行一次BindGameMenuButton("@default");

function GUI.UnbindAllGameMenuButton()

📘 GUI.SetGameMenuTitle()

设置游戏菜单标题文本(支持宏文本),留空参数则使用默认名称(模组名称)。

function GUI.SetGameMenuTitle( text: string = null )

📘 GUI.GetGameMenuTitle()

获取游戏菜单标题文本

function GUI.GetGameMenuTitle(): string

📘 GUI.SetGameMenuStyle()

设置游戏菜单风格样式,默认值为0

function GUI.SetGameMenuStyle( style: int )
Style 样式
-1(已过时) 隐藏内置游戏菜单,通常配合FairyGUI高度自定义使用
(仅限Main主菜单,游戏世界仍然使用内置菜单风格)
0(默认) 内置菜单风格,但使用\GameMenu.png || \Cover.png作为不透明底图
1 内置风格菜单,但不显示背景图片,直接显示世界相机视角

📘 GUI.GetGameMenuStyle()

获取游戏菜单风格样式

function GUI.GetGameMenuStyle(): int

📒 Function

📘 gui.Remove()

移除并销毁当前GUI实例

function gui.Remove()

📘 gui.GetChild()

寻找并获取当前GUI实例的指定子元件(对象),如不存在则返回null

有关GUI实例对象(GUIPanel),参考GUI Element

function gui.GetChild( child: string ): GUIPanel