/* * @Author: 白哉 * @Description: * @Date: 2025年06月06日 星期五 19:06:16 * @Modify: */ using System; using Logic; using Logic.AI; using NodeCanvas.Framework; using ParadoxNotion.Design; using UnityEngine; namespace NodeCanvas.Tasks.Actions { [Category("AI节点")] [Serializable] public class BaseActionTask : ActionTask { [SerializeField] private uint nodeId; public uint NodeId { get => nodeId; set => nodeId = value; } protected override void OnExecute() { base.OnExecute(); MainEditor.Instance.BTNodeId = this.nodeId; } #if UNITY_EDITOR public override void EndAction(bool success) { var records = AILogic.GetCurrentAIRecords(); if (records != null) { if (records.Count == 0) records.Add(new AIRecord()); var record = records[^1]; if (record.Action != null) records.Add(new AIRecord()); record = records[^1]; var stateRecord = new AIStateRecord { ID = nodeId, Desc = desc, Result = success, }; record.StateRecords.Add(stateRecord); } base.EndAction(success); } #endif //#if UNITY_EDITOR protected override string info => $"ID:{desc}"; protected virtual string desc => string.Empty; //#endif } }