/* * @Author: 白哉 * @Description: * @Date: 2025年06月06日 星期五 19:06:16 * @Modify: */ using System; using System.Collections.Generic; using Logic.AI; using NodeCanvas.Framework; using ParadoxNotion.Design; using RuntimeData; namespace NodeCanvas.Tasks.Actions { [Name("随机一个 Action")] [Category("AI节点")] [Serializable] public class AIParamRandomAction : BaseActionTask { protected override string desc => "随机一个 Action"; protected override void OnExecute() { base.OnExecute(); // 直接从Blackboard获取AICalculatorData var data = blackboard.GetVariable("Data"); if (data?.value == null) { EndAction(false); return; } var random = new System.Random(); if (data.value.AIActions.Count > 0) { // 随机选择一个索引 int randomIndex = random.Next(0, data.value.AIActions.Count); // 保存选中的 action var selectedAction = data.value.AIActions[randomIndex]; // 清空列表并只保留选中的 action data.value.AIActions.Clear(); data.value.AIActions.Add(selectedAction); } EndAction(data.value.AIActions.Count > 0); } } }