using System; using Cielonos.MainGame.Interactions; using SLSUtilities.FunctionalAnimation; using UnityEngine; namespace Cielonos.MainGame.FunctionalAnimation { [Serializable] public class SpawnVFX : FuncAnimPayloadBase { public string vfxKey = "VFXKey"; public override void Invoke() { if (mute) return; VFXData vfxData = null; if (Character != null) // 战斗角色分支 { vfxData = Character.vfxData; } else if (Executor is NpcBase npc) // NPC 分支 { vfxData = npc.vfxData; } if (vfxData != null) { //如果非战斗角色,Character就是null,通过 Executor 来获取 Transform 以正确生成 VFX VFXObject vfxObject = vfxData.SpawnVFX(vfxKey, Character, Executor.Transform).GetComponent(); if (vfxObject != null && Character != null) { vfxObject.SetCreator(Character); } } } } }