meta data for this page
📚 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 |
尽管有些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