This commit is contained in:
PC-20230316NUNE\Administrator
2024-10-21 20:39:01 +08:00
parent e9c01842f0
commit fd5d83549a
34 changed files with 122 additions and 144 deletions

View File

@@ -48,7 +48,7 @@ namespace GAS.Editor
/// <summary>
/// 这个方法被反射引用到, 重构请小心!!
/// </summary>
public static void ShowWindow(TimelineAbilityAssetBase asset)
public static void ShowWindow(TimelineAbilityAsset asset)
{
var wnd = GetWindow<AbilityTimelineEditorWindow>();
wnd.titleContent = new GUIContent("AbilityTimelineEditorWindow");
@@ -63,7 +63,7 @@ namespace GAS.Editor
AbilityAsset.Save();
}
private void InitAbility(TimelineAbilityAssetBase asset)
private void InitAbility(TimelineAbilityAsset asset)
{
_abilityAsset.value = asset;
MaxFrame.value = AbilityAsset.FrameCount;
@@ -84,7 +84,7 @@ namespace GAS.Editor
private ObjectField _abilityAsset;
private Button _btnShowAbilityAssetDetail;
public TimelineAbilityAssetBase AbilityAsset => _abilityAsset.value as TimelineAbilityAssetBase;
public TimelineAbilityAsset AbilityAsset => _abilityAsset.value as TimelineAbilityAsset;
// private TimelineAbilityEditorWindow AbilityAssetEditor => AbilityAsset != null
// ? UnityEditor.Editor.CreateEditor(AbilityAsset) as TimelineAbilityEditorWindow
@@ -208,7 +208,7 @@ namespace GAS.Editor
if (_currentMaxFrame == value) return;
_currentMaxFrame = value;
AbilityAsset.FrameCount = _currentMaxFrame;
AbilityAsset.frameCount = _currentMaxFrame;
SaveAsset();
MaxFrame.value = _currentMaxFrame;
TrackView.UpdateContentSize();

View File

@@ -34,7 +34,7 @@ namespace GAS.Editor
public List<TrackBase> TrackList { get; } = new();
private static AbilityTimelineEditorConfig Config => AbilityTimelineEditorWindow.Instance.Config;
private static TimelineAbilityAssetBase AbilityAsset => AbilityTimelineEditorWindow.Instance.AbilityAsset;
private static TimelineAbilityAsset AbilityAsset => AbilityTimelineEditorWindow.Instance.AbilityAsset;
private void InitTracks()
{

View File

@@ -8,7 +8,7 @@ namespace GAS.Editor
public class TaskClip : TrackClip<TaskClipEventTrack>
{
private TimelineAbilityAssetBase AbilityAsset => AbilityTimelineEditorWindow.Instance.AbilityAsset;
private TimelineAbilityAsset AbilityAsset => AbilityTimelineEditorWindow.Instance.AbilityAsset;
public TaskClipEvent TaskClipData => clipData as TaskClipEvent;
public TaskClipEvent ClipDataForSave

View File

@@ -42,7 +42,7 @@ namespace GAS.Editor
private const string GRP_BOX = "GRP_BOX";
private const string GRP_BOX_TASK = "GRP_BOX/Task";
private TimelineAbilityAssetBase AbilityAsset => AbilityTimelineEditorWindow.Instance.AbilityAsset;
private TimelineAbilityAsset AbilityAsset => AbilityTimelineEditorWindow.Instance.AbilityAsset;
private TaskClip _clip;
public static TaskClipEditor Create(TaskClip clip)

View File

@@ -13,7 +13,7 @@ namespace GAS.Editor
protected override Color TrackColor => new Color(0.7f, 0.3f, 0.7f, 0.2f);
protected override Color MenuColor => new Color(0.5f, 0.3f, 0.5f, 1);
private TimelineAbilityAssetBase AbilityAsset => AbilityTimelineEditorWindow.Instance.AbilityAsset;
private TimelineAbilityAsset AbilityAsset => AbilityTimelineEditorWindow.Instance.AbilityAsset;
public TaskClipEventTrackData TaskClipTrackDataForSave
{
get

View File

@@ -7,7 +7,7 @@ namespace GAS.Editor
public class PassiveTaskClip : TrackClip<PassiveTaskClipEventTrack>
{
private TimelineAbilityAssetBase AbilityAsset => AbilityTimelineEditorWindow.Instance.AbilityAsset;
private TimelineAbilityAsset AbilityAsset => AbilityTimelineEditorWindow.Instance.AbilityAsset;
public PassiveTaskClipEvent TaskClipData => clipData as PassiveTaskClipEvent;
public PassiveTaskClipEvent ClipDataForSave

View File

@@ -42,7 +42,7 @@ namespace GAS.Editor
private const string GRP_BOX = "GRP_BOX";
private const string GRP_BOX_TASK = "GRP_BOX/Task";
private TimelineAbilityAssetBase AbilityAsset => AbilityTimelineEditorWindow.Instance.AbilityAsset;
private TimelineAbilityAsset AbilityAsset => AbilityTimelineEditorWindow.Instance.AbilityAsset;
private PassiveTaskClip _clip;
public static PassiveTaskClipEditor Create(PassiveTaskClip clip)

View File

@@ -13,7 +13,7 @@ namespace GAS.Editor
protected override Color TrackColor => new Color(0.7f, 0.3f, 0.7f, 0.2f);
protected override Color MenuColor => new Color(0.5f, 0.3f, 0.5f, 1);
private TimelineAbilityAssetBase AbilityAsset => AbilityTimelineEditorWindow.Instance.AbilityAsset;
private TimelineAbilityAsset AbilityAsset => AbilityTimelineEditorWindow.Instance.AbilityAsset;
public PassiveTaskClipEventTrackData TaskClipTrackDataForSave
{
get

View File

@@ -11,7 +11,7 @@ namespace GAS.Editor
public class TaskMarkEventTrack : TrackBase
{
private TaskMarkEventTrackData _instantTasksTrackData;
private static TimelineAbilityAssetBase AbilityAsset => AbilityTimelineEditorWindow.Instance.AbilityAsset;
private static TimelineAbilityAsset AbilityAsset => AbilityTimelineEditorWindow.Instance.AbilityAsset;
public TaskMarkEventTrackData InstantTaskEventTrackData
{

View File

@@ -10,7 +10,7 @@ namespace GAS.Editor
public class BuffGameplayEffectClipEditor : OdinEditorWindow
{
private TimelineAbilityAssetBase AbilityAsset => AbilityTimelineEditorWindow.Instance.AbilityAsset;
private TimelineAbilityAsset AbilityAsset => AbilityTimelineEditorWindow.Instance.AbilityAsset;
private BuffGameplayEffectClip _clip;

View File

@@ -13,7 +13,7 @@ namespace GAS.Editor
protected override Color TrackColor => new(0.9f, 0.6f, 0.6f, 0.2f);
protected override Color MenuColor => new(0.9f, 0.6f, 0.6f, 1);
private TimelineAbilityAssetBase AbilityAsset => AbilityTimelineEditorWindow.Instance.AbilityAsset;
private TimelineAbilityAsset AbilityAsset => AbilityTimelineEditorWindow.Instance.AbilityAsset;
public BuffGameplayEffectTrackData BuffTrackDataForSave
{

View File

@@ -8,7 +8,7 @@ namespace GAS.Editor
public class DurationalCueClip : TrackClip<DurationalCueTrack>
{
private TimelineAbilityAssetBase AbilityAsset => AbilityTimelineEditorWindow.Instance.AbilityAsset;
private TimelineAbilityAsset AbilityAsset => AbilityTimelineEditorWindow.Instance.AbilityAsset;
public DurationalCueClipEvent DurationalCueClipData => clipData as DurationalCueClipEvent;
private DurationalCueClipEvent ClipDataForSave

View File

@@ -10,7 +10,7 @@ namespace GAS.Editor
public class DurationalCueClipEditor : OdinEditorWindow
{
private TimelineAbilityAssetBase AbilityAsset => AbilityTimelineEditorWindow.Instance.AbilityAsset;
private TimelineAbilityAsset AbilityAsset => AbilityTimelineEditorWindow.Instance.AbilityAsset;
private DurationalCueClip _clip;

View File

@@ -13,7 +13,7 @@ namespace GAS.Editor
protected override Color TrackColor => new(0.1f, 0.6f, 0.1f, 0.2f);
protected override Color MenuColor => new(0.1f, 0.6f, 0.1f, 1);
private TimelineAbilityAssetBase AbilityAsset => AbilityTimelineEditorWindow.Instance.AbilityAsset;
private TimelineAbilityAsset AbilityAsset => AbilityTimelineEditorWindow.Instance.AbilityAsset;
public DurationalCueTrackData CueTrackDataForSave
{

View File

@@ -12,7 +12,7 @@ namespace GAS.Editor
public class InstantCueTrack : TrackBase
{
private InstantCueTrackData _instantCuesTrackData;
private static TimelineAbilityAssetBase AbilityAsset => AbilityTimelineEditorWindow.Instance.AbilityAsset;
private static TimelineAbilityAsset AbilityAsset => AbilityTimelineEditorWindow.Instance.AbilityAsset;
public InstantCueTrackData InstantCueTrackData
{

View File

@@ -13,7 +13,7 @@ namespace GAS.Editor
private Color _trackColor;
private Type _trackDataType;
private Type _trackType;
private static TimelineAbilityAssetBase AbilityAsset => AbilityTimelineEditorWindow.Instance.AbilityAsset;
private static TimelineAbilityAsset AbilityAsset => AbilityTimelineEditorWindow.Instance.AbilityAsset;
private static AbilityTimelineEditorConfig Config => AbilityTimelineEditorWindow.Instance.Config;
private static TimelineTrackView TrackView => AbilityTimelineEditorWindow.Instance.TrackView;
public override Type TrackDataType { get; }

View File

@@ -10,7 +10,7 @@ namespace GAS.Editor
public class PassiveGameplayEffectClipEditor : OdinEditorWindow
{
private TimelineAbilityAssetBase AbilityAsset => AbilityTimelineEditorWindow.Instance.AbilityAsset;
private TimelineAbilityAsset AbilityAsset => AbilityTimelineEditorWindow.Instance.AbilityAsset;
private PassiveGameplayEffectClip _clip;

View File

@@ -9,7 +9,7 @@ namespace GAS.Editor
public class PassiveGameplayEffectTrack : TrackBase
{
private PassiveGameplayEffectTrackData _PassiveGameplayEffectTrackData;
private TimelineAbilityAssetBase AbilityAsset => AbilityTimelineEditorWindow.Instance.AbilityAsset;
private TimelineAbilityAsset AbilityAsset => AbilityTimelineEditorWindow.Instance.AbilityAsset;
public override Type TrackDataType => typeof(PassiveGameplayEffectTrackData);
protected override Color TrackColor => new(0.9f, 0.6f, 0.6f, 0.2f);

View File

@@ -9,7 +9,7 @@ namespace GAS.Editor
public class ReleaseGameplayEffectTrack : TrackBase
{
private static TimelineAbilityAssetBase AbilityAsset => AbilityTimelineEditorWindow.Instance.AbilityAsset;
private static TimelineAbilityAsset AbilityAsset => AbilityTimelineEditorWindow.Instance.AbilityAsset;
public ReleaseGameplayEffectTrackData ReleaseGameplayEffectTrackData {
get
{

View File

@@ -8,7 +8,7 @@ namespace GAS.Editor
using UnityEngine.UIElements;
public abstract class TrackMarkBase:TrackItemBase
{
protected static TimelineAbilityAssetBase AbilityAsset => AbilityTimelineEditorWindow.Instance.AbilityAsset;
protected static TimelineAbilityAsset AbilityAsset => AbilityTimelineEditorWindow.Instance.AbilityAsset;
private static string MarkAssetGuid => "5a3b3360bcba29b4cac2875f518af19d";
public float FrameUnitWidth { get;protected set; }
public int StartFrameIndex=>markData.startFrame;

View File

@@ -6,7 +6,7 @@ namespace GAS.Runtime
public abstract class AbstractAbility
{
public readonly string Name;
public readonly AbilityAsset DataReference;
public readonly IAbilityAsset DataReference;
// TODO : AbilityTask
// public List<OngoingAbilityTask> OngoingAbilityTasks=new List<OngoingAbilityTask>();
@@ -20,7 +20,7 @@ namespace GAS.Runtime
public GameplayEffect Cost { get; protected set; }
public AbstractAbility(AbilityAsset abilityAsset)
public AbstractAbility(IAbilityAsset abilityAsset)
{
DataReference = abilityAsset;
@@ -64,13 +64,4 @@ namespace GAS.Runtime
#endif
}
}
public abstract class AbstractAbility<T> : AbstractAbility where T : AbilityAsset
{
public T AbilityAsset => DataReference as T;
protected AbstractAbility(T abilityAsset) : base(abilityAsset)
{
}
}
}

View File

@@ -3,16 +3,21 @@ using UnityEngine.Profiling;
namespace GAS.Runtime
{
public abstract class TimelineAbilityT<T> : AbstractAbility<T> where T : TimelineAbilityAssetBase
public class TimelineAbility : AbstractAbility
{
protected TimelineAbilityT(T abilityAsset) : base(abilityAsset)
public TimelineAbility(IAbilityAsset abilityAsset) : base(abilityAsset)
{
}
public override AbilitySpec CreateSpec(AbilitySystemComponent owner)
{
return new TimelineAbilitySpec(this, owner);
}
}
public abstract class TimelineAbilitySpecT<AbilityT, AssetT> : AbilitySpec<AbilityT> where AbilityT : TimelineAbilityT<AssetT> where AssetT : TimelineAbilityAssetBase
public class TimelineAbilitySpec : AbilitySpec
{
protected TimelineAbilityPlayer<AbilityT, AssetT> _player;
private TimelineAbilityPlayer _player;
public int FrameCount => _player.FrameCount;
public int FrameRate => _player.FrameRate;
@@ -27,7 +32,7 @@ namespace GAS.Runtime
/// </summary>
public AbilitySystemComponent Target { get; private set; }
protected TimelineAbilitySpecT(AbilityT ability, AbilitySystemComponent owner) : base(ability, owner)
public TimelineAbilitySpec(TimelineAbility ability, AbilitySystemComponent owner) : base(ability, owner)
{
_player = new(this);
}
@@ -42,9 +47,9 @@ namespace GAS.Runtime
_player.Play();
}
public virtual LFloat GetPlaySpeed()
public LFloat GetPlaySpeed()
{
return Data.AbilityAsset.Speed;
return _player.AbilityAsset.Speed;
}
public override void CancelAbility()
@@ -64,29 +69,5 @@ namespace GAS.Runtime
Profiler.EndSample();
}
}
/// <summary>
/// 这是一个最朴素的TimelineAbility实现, 如果要实现更复杂的TimelineAbility, 请用TimelineAbilityT和TimelineAbilitySpecT为基类
/// </summary>
public sealed class TimelineAbility : TimelineAbilityT<TimelineAbilityAsset>
{
public TimelineAbility(TimelineAbilityAsset abilityAsset) : base(abilityAsset)
{
}
public override AbilitySpec CreateSpec(AbilitySystemComponent owner)
{
return new TimelineAbilitySpec(this, owner);
}
}
/// <summary>
/// 这是一个最朴素的TimelineAbilitySpec实现, 如果要实现更复杂的TimelineAbility, 请用TimelineAbilityT和TimelineAbilitySpecT为基类
/// </summary>
public sealed class TimelineAbilitySpec : TimelineAbilitySpecT<TimelineAbilityT<TimelineAbilityAsset>, TimelineAbilityAsset>
{
public TimelineAbilitySpec(TimelineAbilityT<TimelineAbilityAsset> ability, AbilitySystemComponent owner) : base(ability, owner)
{
}
}
}

View File

@@ -10,8 +10,9 @@ using UnityEngine.Serialization;
namespace GAS.Runtime
{
public abstract class TimelineAbilityAssetBase : AbilityAsset
public abstract class TimelineAbilityAsset : AbilityAsset
{
[TitleGroup("Data")]
[HorizontalGroup("Data/H1", 1 / 3f)]
[TabGroup("Data/H1/V1", "Timeline", SdfIconType.ClockHistory, TextColor = "#00FF00")]
@@ -32,6 +33,28 @@ namespace GAS.Runtime
$"调用\"GAS.Editor.AbilityTimelineEditorWindow\"类的静态方法ShowWindow(TimelineAbilityAsset asset)失败, 代码可能被重构了: {e}");
}
}
public LFloat Speed => speed;
public bool ManualEndAbility => manualEndAbility;
public int FrameCount => frameCount;// 能力结束时间
public List<DurationalCueTrackData> DurationalCues => durationalCues;
public List<InstantCueTrackData> InstantCues => instantCues;
public List<ReleaseGameplayEffectTrackData> ReleaseGameplayEffect => releaseGameplayEffect;
public List<BuffGameplayEffectTrackData> BuffGameplayEffects => buffGameplayEffects;
public List<TaskMarkEventTrackData> InstantTasks => instantTasks;
public List<TaskClipEventTrackData> OngoingTasks => ongoingTasks;
public List<PassiveGameplayEffectTrackData> PassiveGameplayEffects => passiveGameplayEffects;
public List<PassiveTaskClipEventTrackData> PassiveTasks => passiveTasks;
/// <summary>
/// 播放速率, 常用于加速或减速播放(例如基于攻击速度的技能, 播放速率随攻击速度变化)
@@ -40,40 +63,40 @@ namespace GAS.Runtime
[LabelText(GASTextDefine.ABILITY_PLAY_RATE)]
[LabelWidth(100)]
[MinValue(0)]
public LFloat Speed = 1;
public LFloat speed = 1;
[TabGroup("Data/H1/V1", "Timeline")]
[LabelText(GASTextDefine.ABILITY_MANUAL_ENDABILITY)]
[LabelWidth(100)]
[FormerlySerializedAs("manualEndAbility")]
public bool ManualEndAbility;
public bool manualEndAbility;
[HideInInspector]
public int FrameCount; // 能力结束时间
public int frameCount; // 能力结束时间
[HideInInspector]
public List<DurationalCueTrackData> DurationalCues = new List<DurationalCueTrackData>();
public List<DurationalCueTrackData> durationalCues = new List<DurationalCueTrackData>();
[HideInInspector]
public List<InstantCueTrackData> InstantCues = new List<InstantCueTrackData>();
public List<InstantCueTrackData> instantCues = new List<InstantCueTrackData>();
[HideInInspector]
public List<ReleaseGameplayEffectTrackData> ReleaseGameplayEffect = new List<ReleaseGameplayEffectTrackData>();
public List<ReleaseGameplayEffectTrackData> releaseGameplayEffect = new List<ReleaseGameplayEffectTrackData>();
[HideInInspector]
public List<BuffGameplayEffectTrackData> BuffGameplayEffects = new List<BuffGameplayEffectTrackData>();
public List<BuffGameplayEffectTrackData> buffGameplayEffects = new List<BuffGameplayEffectTrackData>();
[HideInInspector]
public List<TaskMarkEventTrackData> InstantTasks = new List<TaskMarkEventTrackData>();
public List<TaskMarkEventTrackData> instantTasks = new List<TaskMarkEventTrackData>();
[HideInInspector]
public List<TaskClipEventTrackData> OngoingTasks = new List<TaskClipEventTrackData>();
public List<TaskClipEventTrackData> ongoingTasks = new List<TaskClipEventTrackData>();
[HideInInspector]
public List<PassiveGameplayEffectTrackData> PassiveGameplayEffects = new List<PassiveGameplayEffectTrackData>();
public List<PassiveGameplayEffectTrackData> passiveGameplayEffects = new List<PassiveGameplayEffectTrackData>();
[HideInInspector]
public List<PassiveTaskClipEventTrackData> PassiveTasks = new List<PassiveTaskClipEventTrackData>();
public List<PassiveTaskClipEventTrackData> passiveTasks = new List<PassiveTaskClipEventTrackData>();
#if UNITY_EDITOR
public void Save()
@@ -83,19 +106,5 @@ namespace GAS.Runtime
}
#endif
}
public abstract class TimelineAbilityAssetT<T> : TimelineAbilityAssetBase where T : class
{
public sealed override Type AbilityType()
{
return typeof(T);
}
}
/// <summary>
/// 这是一个最朴素的TimelineAbilityAsset实现, 如果要实现更复杂的TimelineAbilityAsset, 请用TimelineAbilityAssetBase或TimelineAbilityAssetT为基类
/// </summary>
public sealed class TimelineAbilityAsset : TimelineAbilityAssetT<TimelineAbility>
{
}
}

View File

@@ -36,9 +36,9 @@ namespace GAS.Runtime
public InstantAbilityTask task;
}
public class TimelineAbilityPlayer<AbilityT, AssetT> where AssetT : TimelineAbilityAssetBase where AbilityT : TimelineAbilityT<AssetT>
public class TimelineAbilityPlayer
{
private readonly TimelineAbilitySpecT<AbilityT, AssetT> _abilitySpec;
private readonly TimelineAbilitySpec _abilitySpec;
private readonly List<RuntimeBuffClip> _cacheBuffGameplayEffectTrack = new();
private readonly List<RuntimeDurationCueClip> _cacheDurationalCueTrack = new();
@@ -57,7 +57,7 @@ namespace GAS.Runtime
private int _currentFrame;
private LFloat _playTotalTime;
public TimelineAbilityPlayer(TimelineAbilitySpecT<AbilityT, AssetT> abilitySpec)
public TimelineAbilityPlayer(TimelineAbilitySpec abilitySpec)
{
_abilitySpec = abilitySpec;
Cache();
@@ -65,7 +65,7 @@ namespace GAS.Runtime
public bool IsPlaying { get; private set; }
public AssetT AbilityAsset => _abilitySpec.Data.AbilityAsset;
public TimelineAbilityAsset AbilityAsset => _abilitySpec.Ability.DataReference as TimelineAbilityAsset;
public int FrameCount => AbilityAsset.FrameCount;
public int FrameRate => JexGasManager.FrameRate;

View File

@@ -10,7 +10,7 @@ namespace GAS.Runtime
{
public List<BuffGameplayEffectClipEvent> clipEvents = new List<BuffGameplayEffectClipEvent>();
public override void AddToAbilityAsset(TimelineAbilityAssetBase abilityAsset)
public override void AddToAbilityAsset(TimelineAbilityAsset abilityAsset)
{
base.AddToAbilityAsset(abilityAsset);
abilityAsset.BuffGameplayEffects.Add(this);

View File

@@ -9,7 +9,7 @@ namespace GAS.Runtime
{
public List<DurationalCueClipEvent> clipEvents = new List<DurationalCueClipEvent>();
public override void AddToAbilityAsset(TimelineAbilityAssetBase abilityAsset)
public override void AddToAbilityAsset(TimelineAbilityAsset abilityAsset)
{
base.AddToAbilityAsset(abilityAsset);
abilityAsset.DurationalCues.Add(this);

View File

@@ -8,7 +8,7 @@ namespace GAS.Runtime
{
public List<InstantCueMarkEvent> markEvents = new List<InstantCueMarkEvent>();
public override void AddToAbilityAsset(TimelineAbilityAssetBase abilityAsset)
public override void AddToAbilityAsset(TimelineAbilityAsset abilityAsset)
{
base.AddToAbilityAsset(abilityAsset);
abilityAsset.InstantCues.Add(this);

View File

@@ -9,7 +9,7 @@ namespace GAS.Runtime
{
public List<PassiveGameplayEffectClipEvent> clipEvents = new List<PassiveGameplayEffectClipEvent>();
public override void AddToAbilityAsset(TimelineAbilityAssetBase abilityAsset)
public override void AddToAbilityAsset(TimelineAbilityAsset abilityAsset)
{
base.AddToAbilityAsset(abilityAsset);
abilityAsset.PassiveGameplayEffects.Add(this);

View File

@@ -8,7 +8,7 @@ namespace GAS.Runtime
{
public List<PassiveTaskClipEvent> clipEvents = new List<PassiveTaskClipEvent>();
public override void AddToAbilityAsset(TimelineAbilityAssetBase abilityAsset)
public override void AddToAbilityAsset(TimelineAbilityAsset abilityAsset)
{
base.AddToAbilityAsset(abilityAsset);
abilityAsset.PassiveTasks.Add(this);

View File

@@ -10,7 +10,7 @@ namespace GAS.Runtime
{
public List<ReleaseGameplayEffectMarkEvent> markEvents = new List<ReleaseGameplayEffectMarkEvent>();
public override void AddToAbilityAsset(TimelineAbilityAssetBase abilityAsset)
public override void AddToAbilityAsset(TimelineAbilityAsset abilityAsset)
{
base.AddToAbilityAsset(abilityAsset);
abilityAsset.ReleaseGameplayEffect.Add(this);

View File

@@ -10,7 +10,7 @@ namespace GAS.Runtime
{
public List<TaskClipEvent> clipEvents = new List<TaskClipEvent>();
public override void AddToAbilityAsset(TimelineAbilityAssetBase abilityAsset)
public override void AddToAbilityAsset(TimelineAbilityAsset abilityAsset)
{
base.AddToAbilityAsset(abilityAsset);
abilityAsset.OngoingTasks.Add(this);

View File

@@ -9,7 +9,7 @@ namespace GAS.Runtime
{
public List<TaskMarkEvent> markEvents = new List<TaskMarkEvent>();
public override void AddToAbilityAsset(TimelineAbilityAssetBase abilityAsset)
public override void AddToAbilityAsset(TimelineAbilityAsset abilityAsset)
{
base.AddToAbilityAsset(abilityAsset);
abilityAsset.InstantTasks.Add(this);

View File

@@ -7,7 +7,7 @@ namespace GAS.Runtime
{
public string trackName;
public virtual void AddToAbilityAsset(TimelineAbilityAssetBase abilityAsset)
public virtual void AddToAbilityAsset(TimelineAbilityAsset abilityAsset)
{
}