39 lines
1.1 KiB
C#
39 lines
1.1 KiB
C#
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<VFXObject>();
|
||
if (vfxObject != null && Character != null)
|
||
{
|
||
vfxObject.SetCreator(Character);
|
||
}
|
||
}
|
||
}
|
||
}
|
||
} |