CustomEffect
Abstract Scriptable Object
Description
UniTask Support
Abstract Methods
Example
using System.Collections;
using UnityEngine;
// Use StatusEffects.Custom namespace for organization.
namespace StatusEffects.Custom
{
// Setup scriptable object in create menu.
[CreateAssetMenu(fileName = "Damage Over Time Effect", menuName = "Status Effect Framework/Custom Effects/Damage Over Time", order = 1)]
public class DamageOverTimeEffect : CustomEffect
{
// Unique value for this effect example
public float intervalSeconds = 1f;
public override IEnumerator Effect<T>(T monoBehaviour, StatusEffect statusEffect)
{
// Use your own character/entity class for this
if (monoBehaviour.TryGetComponent(out ExampleEntity entity))
for (; ; )
{
entity.health -= statusEffect.data.baseValue;
yield return new WaitForSeconds(intervalSeconds);
}
}
public override void EffectEnd<T>(T monoBehaviour, StatusEffect statusEffect) { }
}
}