meta data for this page
📚 差别
这里会显示出您选择的修订版和当前版本之间的差别。
| 两侧同时换到之前的修订记录前一修订版后一修订版 | 前一修订版 | ||
| scripting:client:core [2025/08/03 20:53] – bibiboxs | scripting:client:core [2025/08/16 04:04] (当前版本) – bibiboxs | ||
|---|---|---|---|
| 行 67: | 行 67: | ||
| - | ### OnLocalObserver( character ) | + | ### OnCameraObserver( character ) |
| > 当客户端`Camera.Target`发生变化时调用。 | > 当客户端`Camera.Target`发生变化时调用。 | ||
| 行 94: | 行 94: | ||
| > | > | ||
| > **对于一些特殊情况,可以利用JSON(data参数)进行更详细的内容传输。** | > **对于一些特殊情况,可以利用JSON(data参数)进行更详细的内容传输。** | ||
| + | |||
| + | |||
| + | |||
| + | ### OnTypingStateChange( state ) | ||
| + | |||
| + | > 当客户端**开始\结束**聊天框时调用。 | ||
| 行 175: | 行 181: | ||
| ```javascript | ```javascript | ||
| function OpenUrl( url: string ) | function OpenUrl( url: string ) | ||
| - | ``` | ||
| - | |||
| - | |||
| - | |||
| - | ### BindGameMenuButton() | ||
| - | |||
| - | > 绑定当前场景自定义ESC菜单按钮。 | ||
| - | > | ||
| - | > 此方法适用于对模组主菜单**没有特殊\高级自定义需求**(否则应该考虑使用FairyGUI自制菜单),可以通过此方法**快速**的建立一个**游戏原生主菜单**。 | ||
| - | > | ||
| - | > **注意:此方法通常只需要在主菜单场景执行一次,绑定代码只在当前场景生效,==切换场景后将会自动重置默认绑定==。** | ||
| - | |||
| - | [note2] | ||
| - | |||
| - | 此方法支持绑定内置(宏)按钮,这将直接引用引擎内置按钮(功能及翻译),详情可参考下方表格。 | ||
| - | |||
| - | **如果绑定的是一个内置按钮,则只需要填写参数0即可。** | ||
| - | |||
| - | | 内置按钮(宏) | 说明 | ||
| - | | -------------- | ------------------------------------------------------------ | | ||
| - | | `@default` | ||
| - | | `@space` | ||
| - | | `@options` | ||
| - | | `@multiplayer` | 多人游戏浏览器 | ||
| - | | `@mapeditor` | ||
| - | | `@developers` | ||
| - | | `@native` | ||
| - | | `@quit` | ||
| - | |||
| - | [/note] | ||
| - | |||
| - | [note3] | ||
| - | |||
| - | 注意:当玩家处于非主菜单(初始Main场景)界面时,引擎会自动补充【继续游戏】、【返回主菜单】两个额外的菜单按钮。 | ||
| - | |||
| - | [/note] | ||
| - | |||
| - | ```javascript | ||
| - | function BindGameMenuButton( titleOrKey: string, info: string = null, callback: Action = null ) | ||
| - | ``` | ||
| - | |||
| - | 以下是一个示例。 | ||
| - | ```javascript | ||
| - | function OnScriptLoad() | ||
| - | { | ||
| - | //Custom Item | ||
| - | BindGameMenuButton(" | ||
| - | CreateHost(" | ||
| - | }); | ||
| - | BindGameMenuButton(" | ||
| - | ConnectHost(" | ||
| - | }); | ||
| - | | ||
| - | //Internal Item | ||
| - | BindGameMenuButton(" | ||
| - | BindGameMenuButton(" | ||
| - | } | ||
| - | ``` | ||
| - | |||
| - | |||
| - | |||
| - | ### UnbindAllGameMenuButton() | ||
| - | |||
| - | > 取消绑定所有主菜单界面按钮项目(包括引擎默认按钮)。 | ||
| - | > | ||
| - | > **注意:此方法会清空所有菜单按钮,如果希望重置为默认引擎按钮,应该手动执行一次`BindGameMenuButton(" | ||
| - | |||
| - | ```javascript | ||
| - | function UnbindAllGameMenuButton() | ||
| - | ``` | ||
| - | |||
| - | |||
| - | |||
| - | ### SetGameMenuTitle() | ||
| - | |||
| - | > 设置游戏菜单**标题文本**,留空参数则使用默认名称(模组名称)。 | ||
| - | |||
| - | ```javascript | ||
| - | function SetGameMenuTitle( text: string = null ) | ||
| - | ``` | ||
| - | |||
| - | |||
| - | |||
| - | ### GetGameMenuTitle() | ||
| - | |||
| - | > 获取游戏菜单**标题文本**。 | ||
| - | |||
| - | ```javascript | ||
| - | function GetGameMenuTitle(): | ||
| - | ``` | ||
| - | |||
| - | |||
| - | |||
| - | ### SetGameMenuStyle() | ||
| - | |||
| - | > 设置游戏菜单**风格样式**,默认值为`0`。 | ||
| - | |||
| - | ```javascript | ||
| - | function SetGameMenuStyle( style: int ) | ||
| - | ``` | ||
| - | |||
| - | | Style | 样式 | ||
| - | | ------------- | ------------------------------------------------------------ | | ||
| - | | -1==(已过时)== | ||
| - | | **0(默认)** | **内置菜单风格,但使用`\GameMenu.png || \Cover.png`作为不透明底图** | | ||
| - | | 1 | 内置风格菜单,但不显示背景图片,直接显示世界相机视角 | ||
| - | |||
| - | |||
| - | |||
| - | ### GetGameMenuStyle() | ||
| - | |||
| - | > 获取游戏菜单**风格样式**。 | ||
| - | |||
| - | ```javascript | ||
| - | function GetGameMenuStyle(): | ||
| - | ``` | ||
| - | |||
| - | |||
| - | |||
| - | ### CreateNativeView() | ||
| - | |||
| - | > 打开一个引擎内置UI面板(如设置、服务器列表、MOD管理器等)。 | ||
| - | |||
| - | ```javascript | ||
| - | function OpenNativeView( int type, Action onDisable = null ) | ||
| - | ``` | ||
| - | |||
| - | | ID | 面板描述 | ||
| - | | ---- | ---------------------- | | ||
| - | | 0 | 开发者界面(关于界面) | | ||
| - | | 1 | 游戏设置 | ||
| - | | 2 | 多人游戏浏览器 | ||
| - | | 4 | ~~MOD模组管理~~ | ||
| - | |||
| - | *尽管有些ID没有被表格记录,但有可能仍然是有内容的,但未被记录的ID通常不具备通用性意义,在打开时将会被引擎阻断。* | ||
| - | |||
| - | |||
| - | |||
| - | ### ExistNativeView() | ||
| - | |||
| - | > 检查某个引擎内置UI界面是否存在(被打开)。 | ||
| - | |||
| - | ```javascript | ||
| - | function ExistNativeView( type: int ): bool | ||
| - | ``` | ||
| - | |||
| - | |||
| - | |||
| - | ### DestroyNativeView() | ||
| - | |||
| - | > 关闭一个引擎内置UI面板。 | ||
| - | |||
| - | ```javascript | ||
| - | function DestroyNativeView(type: | ||
| - | // | ||
| - | // | ||
| ``` | ``` | ||
| 行 375: | 行 225: | ||
| ```javascript | ```javascript | ||
| function SendDataToServer( number: float(int), data: string = "" | function SendDataToServer( number: float(int), data: string = "" | ||
| - | ``` | ||
| - | |||
| - | |||
| - | |||
| - | ### SetChatEnabled() | ||
| - | |||
| - | > 设置游戏聊天框启用开关,当聊天框被禁止后,玩家将无法显示或开启聊天框。 | ||
| - | > | ||
| - | > *此功能主要用于主菜单界面,此时通常不希望玩家使用“聊天”功能,在`Main`场景中是默认被禁止的。* | ||
| - | |||
| - | ```javascript | ||
| - | function SetChatEnabled( enable: bool ) | ||
| - | ``` | ||
| - | |||
| - | |||
| - | |||
| - | ### GetChatEnabled() | ||
| - | |||
| - | > 获取游戏聊天框开关。 | ||
| - | |||
| - | ```javascript | ||
| - | function GetChatEnabled(): | ||
| - | ``` | ||
| - | |||
| - | |||
| - | |||
| - | ### SetChatPanelPivot() | ||
| - | |||
| - | > 设置游戏聊天框锚点位置(强制),默认值为`-1`(遵循游戏默认设置),通过此方法设定位置后,即使玩家在游戏选项设置了锚点位置,也会优先使用当前方法所设置的位置。 | ||
| - | > | ||
| - | > *此功能适用于部分U丰富的模组,可能不希望聊天框占用模组UI位置(例如血条、状态条、信息面板等),可以使用此方法强制设定聊天框位置。* | ||
| - | |||
| - | ```javascript | ||
| - | function SetChatPanelPivot( pivot: int = -1 ) | ||
| - | ``` | ||
| - | ```javascript | ||
| - | SetChatPanelPivot(-1); | ||
| - | SetChatPanelPivot(0); | ||
| - | SetChatPanelPivot(1); | ||
| - | SetChatPanelPivot(2); | ||
| ``` | ``` | ||
| 行 726: | 行 536: | ||
| ```javascript | ```javascript | ||
| function GetModArchive( package: string = null ): string | function GetModArchive( package: string = null ): string | ||
| - | ``` | ||
| - | |||
| - | |||
| - | |||
| - | ### GetPropSourceData() | ||
| - | |||
| - | > 获取**指定游戏道具**最新默认原始数据,如果未被`SetPropSourceData`重写过,则返回引擎原始数据。 | ||
| - | |||
| - | ```javascript | ||
| - | function GetPropSourceData( prop: int, keyPath: string ): any | ||
| ``` | ``` | ||
| 行 773: | 行 573: | ||
| ### BindActionKey() | ### BindActionKey() | ||
| - | > 绑定(更新)**行为触发按键**(游戏右下角按钮)。 | + | > 绑定(更新)**行为触发按键**(类似触发`KEY: |
| > | > | ||
| > **注意:同一个`keyTag`同时只会存在一个。** | > **注意:同一个`keyTag`同时只会存在一个。** | ||
| 行 845: | 行 645: | ||
| - `style`渲染风格(0=默认;1=描边;2=油画;3=灰质;4=黑白描边;5=霓虹描边) | - `style`渲染风格(0=默认;1=描边;2=油画;3=灰质;4=黑白描边;5=霓虹描边) | ||
| - `worldTime`世界时间(生成快照时的亮度) | - `worldTime`世界时间(生成快照时的亮度) | ||
| + | |||
| + | |||
| + | |||
| + | ### SetFocusEntityDistance() | ||
| + | |||
| + | > 设置本地玩家**焦点检测距离**(与`World`作用相同)。 | ||
| + | |||
| + | ```javascript | ||
| + | function SetFocusEntityDistance( value: float ) | ||
| + | ``` | ||
| + | |||
| + | |||
| + | |||
| + | ### GetFocusEntityDistance() | ||
| + | |||
| + | > 获取本地玩家**焦点检测距离**。 | ||
| + | |||
| + | ```javascript | ||
| + | function GetFocusEntityDistance(): | ||
| + | ``` | ||
| + | |||
| + | |||