Unreal蓝图RandomArrayItem节点赋值索引异常随机问题咨询
Unreal蓝图
Get Random Item from Array节点索引不匹配问题解答 这是操作逻辑错误导致的,不属于节点bug。
Get Random Item from Array节点的触发规则是每收到一次执行脉冲,就会重新执行一次随机计算,生成全新的随机索引、返回该索引对应的数组元素。
你遇到的索引和拿到的元素不匹配,是因为你对同一个节点执行了两次调用:第一次调用节点获取返回的元素做赋值,第二次又调用同一个节点获取索引,两次独立的随机计算当然会得到不同的结果,自然会出现元素和索引不对应的情况。
官方文档的描述没有问题,文档中说明的「节点会返回随机项对应的索引」,特指单次触发节点时,同一次执行输出的元素和索引是一一对应的,并非指多次调用节点会保留上一次的随机结果。
正确实现方案
- 方案1:单次调用
Get Random Item from Array节点,将节点输出的元素和索引两个引脚的结果同时保存到局部变量中,后续所有读取、赋值、索引调用操作都使用已保存的变量,不要二次触发该节点。 - 方案2:先通过
Random Integer in Range节点生成固定随机索引,取值范围设置为0 到 数组长度 - 1,后续统一使用这个固定索引通过Get Array Element节点读取、修改数组元素,完全避免多次随机计算的问题。
内容的提问来源于stack exchange,提问作者Void
相关产品推荐
相关产品推荐

