using System;
using UnityEngine;
namespace Assets.HeroEditor4D.Common.Scripts.CharacterScripts
{
///
/// Animation events. If you want to get animation callback, use it.
/// For example, if you want to know exact hit moment for attack animation, use custom event 'Hit' that is fired in most attack animations.
///
public class AnimationEvents : MonoBehaviour
{
///
/// Subscribe it to get animation callback.
///
public event Action OnEvent = s => { };
///
/// Set trigger.
///
public void SetTrigger(string triggerName)
{
GetComponent().SetTrigger(triggerName);
}
///
/// Set bool param, usage example: Idle=false
///
public void SetBool(string value)
{
var parts = value.Split('=');
GetComponent().SetBool(parts[0], bool.Parse(parts[1]));
}
///
/// Set integer param, usage example: WeaponType=2
///
public void SetInteger(string value)
{
var parts = value.Split('=');
GetComponent().SetInteger(parts[0], int.Parse(parts[1]));
}
///
/// Called from animation.
///
public void CustomEvent(string eventName)
{
OnEvent(eventName);
}
///
/// Set characters' expression. Called from animation.
///
public void SetExpression(string expression)
{
GetComponent().Parts.ForEach(i => i.SetExpression(expression));
}
}
}