meta data for this page
  •  

📚 差别

这里会显示出您选择的修订版和当前版本之间的差别。

到此差别页面的链接

两侧同时换到之前的修订记录前一修订版
scripting:client:gui [2025/08/09 19:56] bibiboxsscripting:client:gui [2025/08/09 20:20] (当前版本) bibiboxs
行 455: 行 455:
  
 - `isForce`是否强制获取(不考虑UI占用状态) - `isForce`是否强制获取(不考虑UI占用状态)
 +
 +
 +
 +### GUI.SetChatPanelActive()
 +
 +> 设置游戏聊天框启用开关,当聊天框被禁止后,玩家将无法显示或开启聊天框。
 +>
 +> *此功能主要用于主菜单界面,此时通常不希望玩家使用“聊天”功能,在`Main`场景中是默认被禁止的。*
 +
 +```javascript
 +function GUI.SetChatPanelActive( active: bool )
 +```
 +
 +
 +
 +### GUI.GetChatPanelActive()
 +
 +> 获取游戏聊天框开关。
 +
 +```javascript
 +function GUI.GetChatPanelActive(): bool
 +```
 +
 +
 +
 +### GUI.SetChatPanelPivot()
 +
 +> 设置游戏聊天框锚点位置(强制),默认值为`-1`(遵循游戏默认设置),通过此方法设定位置后,即使玩家在游戏选项设置了锚点位置,也会优先使用当前方法所设置的位置。
 +>
 +> *此功能适用于部分U丰富的模组,可能不希望聊天框占用模组UI位置(例如血条、状态条、信息面板等),可以使用此方法强制设定聊天框位置。*
 +
 +```javascript
 +function GUI.SetChatPanelPivot( pivot: int = -1 )
 +```
 +
 +```javascript
 +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()
 +
 +> 获取游戏聊天框锚点位置。
 +
 +```javascript
 +function GUI.GetChatPanelPivot(): int
 +```
 +
 +
 +
 +### GUI.CreateNativeView()
 +
 +> 打开一个引擎内置UI面板(如设置、服务器列表、MOD管理器等)。
 +
 +```javascript
 +function GUI.CreateNativeView( int type, Action onDisable = null )
 +```
 +
 +| ID   | 面板描述               |
 +| ---- | ---------------------- |
 +| 0    | 开发者界面(关于界面) |
 +| 1    | 游戏设置               |
 +| 2    | 多人游戏浏览器         |
 +| 4    | ~~MOD模组管理~~        |
 +
 +*尽管有些ID没有被表格记录,但有可能仍然是有内容的,但未被记录的ID通常不具备通用性意义,在打开时将会被引擎阻断。*
 +
 +
 +
 +### GUI.ExistNativeView()
 +
 +> 检查某个引擎内置UI界面是否存在(被打开)。
 +
 +```javascript
 +function GUI.ExistNativeView( type: int ): bool
 +```
 +
 +
 +
 +### GUI.DestroyNativeView()
 +
 +> 关闭一个引擎内置UI面板。
 +
 +```javascript
 +function GUI.DestroyNativeView(type: int = -1, hasEffect: bool = true)
 +//如果不填写参数(-1),则默认关闭所有内置UI面板
 +//如果hasEffect == false则立即关闭面板
 +```
 +
 +
 +
 +### GUI.BindGameMenuButton()
 +
 +> 绑定当前场景自定义ESC菜单按钮。
 +>
 +> 此方法适用于对模组主菜单**没有特殊\高级自定义需求**(否则应该考虑使用FairyGUI自制菜单),可以通过此方法**快速**的建立一个**游戏原生主菜单**。
 +>
 +> **注意:此方法通常只需要在主菜单场景执行一次,绑定代码只在当前场景生效,==切换场景后将会自动重置默认绑定==。**
 +
 +[note2]
 +
 +此方法支持绑定内置(宏)按钮,这将直接引用引擎内置按钮(功能及翻译),详情可参考下方表格。
 +
 +**如果绑定的是一个内置按钮,则只需要填写参数0即可。**
 +
 +| 内置按钮(宏) | 说明                                                         |
 +| -------------- | ------------------------------------------------------------ |
 +| `@default`     | 绑定默认引擎菜单(游戏选项、多人游戏、地图编辑器、开发者名单、引擎首页、退出游戏……) |
 +| `@space`       | 绑定显示空行(分割显示)                                     |
 +| `@options`     | 游戏选项                                                     |
 +| `@multiplayer` | 多人游戏浏览器                                               |
 +| `@mapeditor`   | 地图编辑器                                                   |
 +| `@developers`  | 开发者名单                                                   |
 +| `@native`      | 沙盘引擎首页(模组选择页)                                   |
 +| `@quit`        | 退出游戏                                                     |
 +
 +[/note]
 +
 +[note3]
 +
 +注意:当玩家处于非主菜单(初始Main场景)界面时,引擎会自动补充**继续游戏**、**返回主菜单**额外的菜单按钮。
 +
 +[/note]
 +
 +```javascript
 +function GUI.BindGameMenuButton( titleOrKey: string, info: string = null, callback: Action = null )
 +```
 +
 +以下是一个示例。
 +
 +```javascript
 +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");`。**
 +
 +```javascript
 +function GUI.UnbindAllGameMenuButton()
 +```
 +
 +
 +
 +### GUI.SetGameMenuTitle()
 +
 +> 设置游戏菜单**标题文本**(支持宏文本),留空参数则使用默认名称(模组名称)。
 +
 +```javascript
 +function GUI.SetGameMenuTitle( text: string = null )
 +```
 +
 +
 +
 +### GUI.GetGameMenuTitle()
 +
 +> 获取游戏菜单**标题文本**。
 +
 +```javascript
 +function GUI.GetGameMenuTitle(): string
 +```
 +
 +
 +
 +### GUI.SetGameMenuStyle()
 +
 +> 设置游戏菜单**风格样式**,默认值为`0`。
 +
 +```javascript
 +function GUI.SetGameMenuStyle( style: int )
 +```
 +
 +| Style            | 样式                                                         |
 +| ---------------- | ------------------------------------------------------------ |
 +| -1==(已过时)== | 隐藏内置游戏菜单,通常配合`FairyGUI`高度自定义使用<br />(仅限Main主菜单,游戏世界仍然使用内置菜单风格) |
 +| **0(默认)**    | **内置菜单风格,但使用`\GameMenu.png || \Cover.png`作为不透明底图** |
 +| 1                | 内置风格菜单,但不显示背景图片,直接显示世界相机视角         |
 +
 +
 +
 +### GUI.GetGameMenuStyle()
 +
 +> 获取游戏菜单**风格样式**。
 +
 +```javascript
 +function GUI.GetGameMenuStyle(): int
 +```
  
  
行 480: 行 688:
 function gui.GetChild( child: string ): GUIPanel function gui.GetChild( child: string ): GUIPanel
 ``` ```
 +