You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
CrowdControl/Assets/Plugins/Animancer/Utilities/SimpleEventReceiver.cs

38 lines
1.7 KiB
C#

// Animancer // Copyright 2020 Kybernetik //
using UnityEngine;
namespace Animancer
{
/// <summary>
/// A component which uses Animation Events with the Function Name "Event" to trigger a callback.
/// <para></para>
/// This component must always be attached to the same <see cref="GameObject"/> as the <see cref="Animator"/> in
/// order to receive Animation Events from it.
/// </summary>
[AddComponentMenu(Strings.MenuPrefix + "Simple Event Receiver")]
[HelpURL(Strings.APIDocumentationURL + "/SimpleEventReceiver")]
public class SimpleEventReceiver : MonoBehaviour
{
/************************************************************************************************************************/
/// <summary>A callback for Animation Events with the Function Name "Event".</summary>
/// <remarks>
/// This field must be public instead of being wrapped in a property since <see cref="AnimationEventReceiver"/>
/// is a struct. Otherwise another class calling <c>receiver.onEvent.Set(...)</c> would actually get a copy of
/// the <c>onEvent</c>, set the desired values on that copy, and then immediately discard the copy without
/// actually modifying the underlying field.
/// </remarks>
public AnimationEventReceiver onEvent;
/// <summary>Called by Animation Events with the Function Name "Event".</summary>
private void Event(AnimationEvent animationEvent)
{
onEvent.SetFunctionName("Event");// The name of this method.
onEvent.HandleEvent(animationEvent);
}
/************************************************************************************************************************/
}
}