meta data for this page
📚 差别
这里会显示出您选择的修订版和当前版本之间的差别。
| 两侧同时换到之前的修订记录前一修订版后一修订版 | 前一修订版 | ||
| scripting:world:core [2025/07/30 03:09] – bibiboxs | scripting:world:core [2025/12/03 10:50] (当前版本) – bibiboxs | ||
|---|---|---|---|
| 行 328: | 行 328: | ||
| ### SetTime() | ### SetTime() | ||
| - | > 设置当前游戏世界时间。 | + | > 设置当前世界时间。 |
| > | > | ||
| > **注意:每次加载新世界场景后,时间都将重新替换为【地图文件配置——默认时间】。** | > **注意:每次加载新世界场景后,时间都将重新替换为【地图文件配置——默认时间】。** | ||
| 行 340: | 行 340: | ||
| ### GetWorldTime() | ### GetWorldTime() | ||
| - | > 获取游戏世界时间实例(`WorldTime`)。 | + | > 获取当前世界时间实例(`WorldTime`)。 |
| ```javascript | ```javascript | ||
| 行 351: | 行 351: | ||
| ### SetWorldTimeRate() | ### SetWorldTimeRate() | ||
| - | > 设置当前游戏世界时间速率(游戏时间每分钟的时间间隔),默认为`1.0`。 | + | > 设置游戏世界时间速率(游戏时间每分钟的时间间隔),默认为`1.0`。 |
| > | > | ||
| > 此方法是`SetGameRule(" | > 此方法是`SetGameRule(" | ||
| 行 365: | 行 365: | ||
| ### GetWorldTimeRate() | ### GetWorldTimeRate() | ||
| - | > 获取游戏世界时间速率(游戏时间每分钟的时间间隔)。 | + | > 获取世界时间速率(游戏时间每分钟的时间间隔)。 |
| ```javascript | ```javascript | ||
| 行 375: | 行 375: | ||
| ### SetWorldWeather() | ### SetWorldWeather() | ||
| - | > 设置游戏世界天气,具体参考[天气ID](reference/ | + | > 设置世界天气,具体参考[天气ID](reference/ |
| > | > | ||
| > **注意:每次加载新世界场景后,天气都将重新替换为【地图文件配置——随机天气(天气池)】。** | > **注意:每次加载新世界场景后,天气都将重新替换为【地图文件配置——随机天气(天气池)】。** | ||
| 行 387: | 行 387: | ||
| ### GetWorldWeather() | ### GetWorldWeather() | ||
| - | > 获取游戏世界天气。 | + | > 获取世界天气。 |
| ```javascript | ```javascript | ||
| 行 397: | 行 397: | ||
| ### GetRandomWorldWeather() | ### GetRandomWorldWeather() | ||
| - | > 随机获取游戏世界天气,获取方式根据参数决定。 | + | > 随机获取世界天气,获取方式根据参数决定。 |
| ```javascript | ```javascript | ||
| 行 409: | 行 409: | ||
| ### SetWorldGravity() | ### SetWorldGravity() | ||
| - | > 设置游戏世界物理重力,分别为`横向X、纵向Y、前后Z`,默认为`Vector(0.0, | + | > 设置世界物理重力,分别为`横向X、纵向Y、前后Z`,默认为`Vector(0.0, |
| ```javascript | ```javascript | ||
| 行 419: | 行 419: | ||
| ### GetWorldGravity() | ### GetWorldGravity() | ||
| - | > 获取游戏世界物理重力。 | + | > 获取世界物理重力。 |
| ```javascript | ```javascript | ||
| 行 429: | 行 429: | ||
| ### SetWorldBrightness() | ### SetWorldBrightness() | ||
| - | > 设置游戏世界亮度偏移,默认为`1.0`。 | + | > 设置世界亮度偏移,默认为`1.0`。 |
| > | > | ||
| > 对于特定的场景或游戏玩法(如丧尸游戏),开发者可能希望将此值调低以营造更好的黑夜效果。 | > 对于特定的场景或游戏玩法(如丧尸游戏),开发者可能希望将此值调低以营造更好的黑夜效果。 | ||
| 行 441: | 行 441: | ||
| ### GetWorldBrightness() | ### GetWorldBrightness() | ||
| - | > 获取游戏世界亮度偏移。 | + | > 获取世界亮度偏移。 |
| ```javascript | ```javascript | ||
| 行 452: | 行 452: | ||
| ### SetWorldColor() | ### SetWorldColor() | ||
| - | > 设置游戏世界叠加色调,默认为白色`Color(255, | + | > 设置世界叠加色调,默认为白色`Color(255, |
| > | > | ||
| 行 463: | 行 463: | ||
| ### GetWorldColor() | ### GetWorldColor() | ||
| - | > 获取游戏世界叠加色调。 | + | > 获取世界叠加色调。 |
| ```javascript | ```javascript | ||
| 行 473: | 行 473: | ||
| ### SetWorldFogColor() | ### SetWorldFogColor() | ||
| - | > 设置游戏世界雾颜色,默认为白色`Color(180, | + | > 设置世界雾颜色,默认为白色`Color(180, |
| > | > | ||
| > 此方法是`SetGameRule(" | > 此方法是`SetGameRule(" | ||
| 行 485: | 行 485: | ||
| ### GetWorldFogColor() | ### GetWorldFogColor() | ||
| - | > 获取游戏世界雾颜色。 | + | > 获取世界雾颜色。 |
| ```javascript | ```javascript | ||
| 行 495: | 行 495: | ||
| ### SetWorldSolarColor() | ### SetWorldSolarColor() | ||
| - | > 设置游戏世界日月颜色(太阳& | + | > 设置世界日月颜色(太阳& |
| ```javascript | ```javascript | ||
| 行 505: | 行 505: | ||
| ### GetWorldSolarColor() | ### GetWorldSolarColor() | ||
| - | > 获取游戏世界日月颜色(太阳& | + | > 获取世界日月颜色(太阳& |
| ```javascript | ```javascript | ||
| 行 515: | 行 515: | ||
| ### SetWorldSolarScale() | ### SetWorldSolarScale() | ||
| - | > 设置游戏世界日月尺寸缩放(太阳& | + | > 设置世界日月尺寸缩放(太阳& |
| ```javascript | ```javascript | ||
| 行 525: | 行 525: | ||
| ### GetWorldSolarScale() | ### GetWorldSolarScale() | ||
| - | > 获取游戏世界日月尺寸缩放(太阳& | + | > 获取世界日月尺寸缩放(太阳& |
| ```javascript | ```javascript | ||
| 行 535: | 行 535: | ||
| ### SetWorldCloudColor() | ### SetWorldCloudColor() | ||
| - | > 设置游戏世界云层颜色,默认为浅灰色`Color(180, | + | > 设置世界云层颜色,默认为浅灰色`Color(180, |
| ```javascript | ```javascript | ||
| 行 545: | 行 545: | ||
| ### GetWorldCloudColor() | ### GetWorldCloudColor() | ||
| - | > 获取游戏世界云层颜色。 | + | > 获取世界**云层颜色**。 |
| ```javascript | ```javascript | ||
| 行 555: | 行 555: | ||
| ### SetWorldCloudDensity() | ### SetWorldCloudDensity() | ||
| - | > 设置游戏世界云层密度,默认为`0.3`,限制范围`0.0~1.0`。 | + | > 设置世界**云层密度(强度)**,默认为`0.5`,限制范围`0.0~1.0`。 |
| ```javascript | ```javascript | ||
| - | function SetWorldCloudDensity( | + | function SetWorldCloudDensity( |
| ``` | ``` | ||
| 行 565: | 行 565: | ||
| ### GetWorldCloudDensity() | ### GetWorldCloudDensity() | ||
| - | > 获取游戏世界云层密度。 | + | > 获取世界**云层密度(强度)**。 |
| ```javascript | ```javascript | ||
| 行 575: | 行 575: | ||
| ### SetSkybox() | ### SetSkybox() | ||
| - | > 设置游戏世界天空盒,默认为`0`。 | + | > 设置世界天空盒,默认为`0`。 |
| ```javascript | ```javascript | ||
| 行 585: | 行 585: | ||
| ### GetSkybox() | ### GetSkybox() | ||
| - | > 获取游戏世界天空盒。 | + | > 获取世界天空盒。 |
| ```javascript | ```javascript | ||
| 行 595: | 行 595: | ||
| ### SetSkyboxColor() | ### SetSkyboxColor() | ||
| - | > 设置游戏世界天空盒叠加色调,默认为`Color(128, | + | > 设置世界天空盒叠加色调,默认为`Color(128, |
| ```javascript | ```javascript | ||
| 行 605: | 行 605: | ||
| ### GetSkyboxColor() | ### GetSkyboxColor() | ||
| - | > 获取游戏世界天空盒叠加色调。 | + | > 获取世界天空盒叠加色调。 |
| ```javascript | ```javascript | ||
| function GetSkyboxColor(): | function GetSkyboxColor(): | ||
| + | ``` | ||
| + | |||
| + | |||
| + | |||
| + | ### SetSkyboxNightColor() | ||
| + | |||
| + | > 设置世界天空盒叠加色调(夜间\黑暗),默认为`Color(0, | ||
| + | > | ||
| + | > 注意:阴天、雨天等天气变化时(变暗),也会受到此颜色的影响。 | ||
| + | |||
| + | ```javascript | ||
| + | function SetSkyboxNightColor( color: Color ) | ||
| + | ``` | ||
| + | |||
| + | |||
| + | |||
| + | ### GetSkyboxNightColor() | ||
| + | |||
| + | > 获取世界天空盒叠加色调(夜间\黑暗)。 | ||
| + | |||
| + | ```javascript | ||
| + | function GetSkyboxNightColor(): | ||
| ``` | ``` | ||
| 行 625: | 行 647: | ||
| ### GetSkyboxOffset() | ### GetSkyboxOffset() | ||
| - | > 获取游戏世界天空盒偏移(高度)。 | + | > 获取世界天空盒偏移(高度)。 |
| ```javascript | ```javascript | ||
| 行 635: | 行 657: | ||
| ### SetSkyboxRotateSpeed() | ### SetSkyboxRotateSpeed() | ||
| - | > 设置游戏世界天空盒旋转速度,默认`1.0`。 | + | > 设置世界天空盒旋转速度,默认`1.0`。 |
| > | > | ||
| > 如果设置为`0`则固定角度,如果设置为`-1`则使用地图默认速度。 | > 如果设置为`0`则固定角度,如果设置为`-1`则使用地图默认速度。 | ||
| 行 647: | 行 669: | ||
| ### GetSkyboxRotateSpeed() | ### GetSkyboxRotateSpeed() | ||
| - | > 获取游戏世界天空盒旋转速度。 | + | > 获取世界天空盒旋转速度。 |
| ```javascript | ```javascript | ||
| 行 1015: | 行 1037: | ||
| ```javascript | ```javascript | ||
| function ResumeWorldSound( uuid: string ): bool // | function ResumeWorldSound( uuid: string ): bool // | ||
| - | ``` | ||
| - | |||
| - | |||
| - | |||
| - | ### SetWorldSound() | ||
| - | |||
| - | > 设置一个**服务器世界声音实例**的网络世界`World`(不同世界将无法听到声音)。 | ||
| - | |||
| - | ```javascript | ||
| - | function SetWorldSound( uuid: string, world: int ): bool // | ||
| ``` | ``` | ||
| 行 1063: | 行 1075: | ||
| - | ### SetPropSourceData() | + | ### WriteHostFile() |
| - | > 设置**指定游戏道具**默认原始数据(重写),建议场景初始化时使用,本次场景内有效。 | + | > 写入文件(或以`/ |
| > | > | ||
| - | > **注意:由于`PropData`的数据类型,通过此方法设置数据后,仅会在`character.SetProp()`时赋予最新的道具数据,如果数据在`character.SetProp()`后才进行修改,则之前生成的Prop不会使用最新数据。** | + | > 此功能通常用于实现**游戏存档\配置**等,可以使用`Json`功能进行序列化。 |
| ```javascript | ```javascript | ||
| - | function | + | function |
| ``` | ``` | ||
| - | ```javascript | ||
| - | SetPropSourceData(277, | ||
| - | ``` | ||
| + | ### ReadHostFile() | ||
| - | ### GetPropSourceData() | + | > 从模组**主机目录**(`Mod/Host`)读取文件(文本内容),如果文件不存在则返回**空白文本**。 |
| - | + | ||
| - | > 获取**指定游戏道具**最新默认原始数据,如果未被`SetPropSourceData`重写过,则返回引擎原始数据。 | + | |
| ```javascript | ```javascript | ||
| - | function | + | function |
| ``` | ``` | ||
| - | |||
| - | |||
| - | |||
| - | ### ClearPropSourceData() | ||
| - | |||
| - | > 清空**指定游戏道具**修改数据,恢复使用引擎原始数据。 | ||
| - | > | ||
| - | > **注意:此方法不会更新已被生成的Prop。** | ||
| ```javascript | ```javascript | ||
| - | function ClearPropSourceData( prop: int ) | + | ReadFile( " |
| ``` | ``` | ||
| - | ### ClearAllPropSourceData() | + | ### CopyHostFile() |
| - | > 清空**全部游戏道具**修改数据,恢复使用引擎原始数据。 | + | > 从模组**主机目录**(`Mod/ |
| - | > | + | |
| - | > **注意:此方法不会更新已被生成的Prop。** | + | |
| ```javascript | ```javascript | ||
| - | function | + | function |
| ``` | ``` | ||
| - | |||
| - | |||
| - | |||
| - | ### WriteHostFile() | ||
| - | |||
| - | > 写入文件(或以`/ | ||
| - | > | ||
| - | > 此功能通常用于实现**游戏存档\配置**等,可以使用`Json`功能进行序列化。 | ||
| ```javascript | ```javascript | ||
| - | function WriteHostFile( localPath: string, content: string = null ) | + | CopyHostFile( " |
| ``` | ``` | ||
| - | ### ReadHostFile() | + | ### RenameHostFile() |
| - | > 从模组**主机目录**(`Mod/ | + | > 从模组**主机目录**(`Mod/ |
| ```javascript | ```javascript | ||
| - | function | + | function |
| ``` | ``` | ||
| - | ```javascript | + | - `isReplace`如果目标文件已存在,是否强制替换 |
| - | ReadFile( " | + | |
| - | ``` | + | |
| 行 1208: | 行 1196: | ||
| - | ### SetAllNavMeshDirty() | + | ### ReplaceTerrainLayer() |
| - | > 重置全部NavMesh脏数据(重建)。 | + | > 尝试**替换修改**地形层贴图,具体参考[地形层贴图ID](reference/ |
| - | > | + | |
| - | > 此方法通常不需要手动调用,除非希望烘焙全图寻路数据,可能会根据地图大小\复杂度引起卡顿。 | + | |
| > | > | ||
| - | > 不建议**中大型地图**使用此方法,而应该由每次触发寻路时引擎自动提起烘焙请求(自动执行)。 | + | > 注意:此方法会产生些许开销,如果一个层的`layer`已经被替换 ,那么下一次需要使用新的`layer`来进行后续替换。 |
| - | ```javascript | + | [note] |
| - | function SetAllNavMeshDirty() | + | 在游戏场景运行时,会对**使用较少**的贴图自动进行**剔除优化**,因此可能少数情况下会出现**无法找到贴图**的提示。 |
| - | ``` | + | [/note] |
| - | + | ||
| - | + | ||
| - | + | ||
| - | ### SetNavMeshDirtyByPos() | + | |
| - | + | ||
| - | > 重置指定坐标的NavMesh脏数据,该区域范围内的NavMesh(如存在)将会在后续自动重建。 | + | |
| - | > | + | |
| - | > 此方法通常不需要手动调用,除非希望动态生成对象参与NavMesh寻路逻辑,这样就需要在合适的时机对发生变化的区域进行重建,因为区域的NavMesh可能在之前已经烘焙完成。 | + | |
| ```javascript | ```javascript | ||
| - | function | + | function |
| ``` | ``` | ||
| - | ### GetNavMeshRandomPoint() | ||
| - | |||
| - | > 获取指定坐标范围内的随机NavMesh坐标点(已烘焙)。 | ||
| - | > | ||
| - | > 如果范围内不存在合适的坐标,将返回`VECTOR_NULL`。 | ||
| - | |||
| - | ```javascript | ||
| - | function GetNavMeshRandomPoint( pos: Vector, radius: float ): Vector | ||
| - | ``` | ||
| - | |||
| - | |||
| - | |||
| - | ### IsValidNavMeshPoint() | ||
| - | |||
| - | > 判断指定坐标是否已被烘焙完成(即合理的寻路坐标)。 | ||
| - | > | ||
| - | > 如果返回`false`则表示此区域没有被烘焙,关于AI的移动逻辑也无法到达目标。 | ||
| - | |||
| - | [note2] | ||
| - | |||
| - | 通常情况下,关于AI的移动将会在设置目标点时自动请求烘焙(可能会在数秒内完成),如果确实需要主动激活某处NavMesh烘焙,请使用`SetNavMeshDirtyByPos()`。 | ||
| - | |||
| - | [/note] | ||
| - | |||
| - | ```javascript | ||
| - | function IsValidNavMeshPoint( pos: Vector ): bool | ||
| - | ``` | ||