mirror of
https://gitee.com/jisol/jisol-game/
synced 2025-09-27 10:46:17 +00:00
提交Cue案例
This commit is contained in:
@@ -1,51 +0,0 @@
|
||||
using System.Collections.Generic;
|
||||
using GAS.General;
|
||||
|
||||
namespace GAS.Runtime
|
||||
{
|
||||
|
||||
/// <summary>
|
||||
/// Cue 处理
|
||||
/// </summary>
|
||||
public abstract partial class AbilitySystemComponent : IAbilitySystemComponent, IPool
|
||||
{
|
||||
|
||||
/// <summary>
|
||||
/// AbilitySpec 唯一Id
|
||||
/// </summary>
|
||||
private Dictionary<AbilitySpec, int> AbilitySpecId = new();
|
||||
|
||||
/// <summary>
|
||||
/// Ability的Timeline轨道触发了持续型Cue的添加
|
||||
/// </summary>
|
||||
/// <param name="abilitySpec"></param>
|
||||
/// <param name="cueAssetLocation">Cue资源地址</param>
|
||||
/// <param name="durationTime">持续时间</param>
|
||||
/// <returns></returns>
|
||||
public int OnCueAdd(AbilitySpec abilitySpec, string cueAssetLocation, int durationTime)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Ability的Timeline轨道触发了持续型Cue的移除
|
||||
/// </summary>
|
||||
/// <param name="abilitySpec"></param>
|
||||
/// <param name="cueClipIndex"></param>
|
||||
public void OnCueRemove(AbilitySpec abilitySpec, int cueClipIndex)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Ability的Timeline轨道触发了瞬时Cue的触发
|
||||
/// </summary>
|
||||
/// <param name="abilitySpec"></param>
|
||||
/// <param name="cueAssetLocations"></param>
|
||||
public void OnCueExecute(AbilitySpec abilitySpec, string[] cueAssetLocations)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
}
|
@@ -1,3 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: fd84ebd1383e4e009578ebd2daae3200
|
||||
timeCreated: 1729704061
|
@@ -341,6 +341,29 @@ namespace GAS.Runtime
|
||||
/// <param name="geSpec"></param>
|
||||
public abstract void OnGERelease(GameplayEffectSpec geSpec);
|
||||
|
||||
/// <summary>
|
||||
/// Ability的Timeline轨道触发了持续型Cue的添加
|
||||
/// </summary>
|
||||
/// <param name="abilitySpec"></param>
|
||||
/// <param name="cueAssetLocation">Cue资源地址</param>
|
||||
/// <param name="durationTime">持续时间</param>
|
||||
/// <returns></returns>
|
||||
public abstract int OnCueAdd(AbilitySpec abilitySpec, string cueAssetLocation, int durationTime);
|
||||
|
||||
/// <summary>
|
||||
/// Ability的Timeline轨道触发了持续型Cue的移除
|
||||
/// </summary>
|
||||
/// <param name="abilitySpec"></param>
|
||||
/// <param name="cueClipIndex"></param>
|
||||
public abstract void OnCueRemove(AbilitySpec abilitySpec, int cueClipIndex);
|
||||
|
||||
/// <summary>
|
||||
/// Ability的Timeline轨道触发了瞬时Cue的触发
|
||||
/// </summary>
|
||||
/// <param name="abilitySpec"></param>
|
||||
/// <param name="cueAssetLocations"></param>
|
||||
public abstract void OnCueExecute(AbilitySpec abilitySpec, string[] cueAssetLocations);
|
||||
|
||||
/// <summary>
|
||||
/// Ability结束激活
|
||||
/// </summary>
|
||||
|
@@ -30,6 +30,15 @@ namespace GAS.Runtime
|
||||
return durationalCue;
|
||||
}
|
||||
|
||||
public GameplayCueDurationalSpec ApplyFrom(params object[] customArguments)
|
||||
{
|
||||
var durationalCue = CreateSpec(new GameplayCueParameters
|
||||
{
|
||||
customArguments = customArguments
|
||||
});
|
||||
return durationalCue;
|
||||
}
|
||||
|
||||
#if UNITY_EDITOR
|
||||
public virtual void OnEditorPreview(UnityEngine.GameObject previewObject, int frameIndex, int startFrame, int endFrame)
|
||||
{
|
||||
@@ -49,6 +58,7 @@ namespace GAS.Runtime
|
||||
public abstract void OnGameplayEffectActivate();
|
||||
public abstract void OnGameplayEffectDeactivate();
|
||||
public abstract void OnTick(int frame,int startFrame,int endFrame);
|
||||
public abstract void OnTick(int deltaTime);
|
||||
}
|
||||
|
||||
public abstract class GameplayCueDurationalSpec<T> : GameplayCueDurationalSpec where T : GameplayCueDurational
|
||||
|
@@ -1,3 +1,5 @@
|
||||
using UnityEngine;
|
||||
|
||||
namespace GAS.Runtime
|
||||
{
|
||||
public struct GameplayCueParameters
|
||||
|
@@ -415,6 +415,7 @@ namespace GAS.Runtime
|
||||
if (frame >= cueClip.startFrame && frame <= cueClip.endFrame)
|
||||
{
|
||||
cueClip.cueSpec.OnTick(frame,cueClip.startFrame,cueClip.endFrame);
|
||||
cueClip.cueSpec.OnTick(deltaTime);
|
||||
}
|
||||
|
||||
if (frame == cueClip.endFrame)
|
||||
|
Reference in New Issue
Block a user