GFSeedUtility¶
API Reference / Standard / 类索引
- 路径:
addons/gf/standard/utilities/random/gf_seed_utility.gd - 模块:
Standard - 继承:
GFUtility - API:
public - 类别:运行时服务 (
runtime_service) - 首次版本:
3.17.0
全局随机数种子管理器。 内部维护一个主 RandomNumberGenerator,并支持基于字符串标签派生 出独立的子 RNG。子 RNG 的生成不推进主随机序列,可用于保证 回放系统的确定性。
成员概览¶
| 类型 | 名称 | 签名 |
|---|---|---|
| 方法 | init |
func init() -> void: |
| 方法 | set_global_seed |
func set_global_seed(seed_hash: int) -> void: |
| 方法 | get_global_seed |
func get_global_seed() -> int: |
| 方法 | get_rng |
func get_rng() -> RandomNumberGenerator: |
| 方法 | get_state |
func get_state() -> int: |
| 方法 | set_state |
func set_state(state: int) -> void: |
| 方法 | get_full_state |
func get_full_state() -> Dictionary: |
| 方法 | set_full_state |
func set_full_state(state: Dictionary) -> void: |
| 方法 | get_branched_rng |
func get_branched_rng(string_seed: String) -> RandomNumberGenerator: |
方法¶
init¶
- API:
public
第一阶段初始化:创建主 RNG 实例。
set_global_seed¶
- API:
public
设置全局主种子,并同步应用到主 RNG。
参数:
| 名称 | 说明 |
|---|---|
seed_hash |
用于驱动主随机数序列的整数种子。 |
get_global_seed¶
- API:
public
获取当前全局主种子。
返回:当前全局主种子。
get_rng¶
- API:
public
获取主随机数生成器。 调用方可以直接使用该实例生成随机数;生成行为会推进主 RNG 状态。
返回:主随机数生成器实例。
get_state¶
- API:
public
获取当前主 RNG 的内部精确状态。
返回:当前的内部状态值。
set_state¶
- API:
public
恢复主 RNG 的内部精确状态。
参数:
| 名称 | 说明 |
|---|---|
state |
要恢复的内部状态值。 |
get_full_state¶
- API:
public
获取包含主种子、主 RNG 状态与分支计数的完整随机状态。 返回的 64 位整数状态会以十进制字符串保存,确保默认 JSON 存储可精确往返。
返回:JSON 安全的完整随机状态。
结构:
return: Dictionary withstate_schema_version: int,global_seed: String,rng_state: String, andbranch_counters: Dictionary[String, String].
set_full_state¶
- API:
public
恢复完整随机状态。
参数:
| 名称 | 说明 |
|---|---|
state |
get_full_state() 产生的字典。 |
结构:
state: Dictionary produced by get_full_state().
get_branched_rng¶
- API:
public
基于主 RNG 当前状态与字符串标签,派生出一个独立的子 RNG。 每次调用只推进当前标签的分支计数,不推进主 RNG 的随机序列。 同一主状态、同一标签和同一调用序号会产生确定的子随机序列。
参数:
| 名称 | 说明 |
|---|---|
string_seed |
用于标识子随机流用途的字符串(如 "loot_table"、"enemy_ai")。 |
返回:一个已完成种子初始化的独立 RandomNumberGenerator 实例。