FootstepEvents.cs 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. // Animancer // https://kybernetik.com.au/animancer // Copyright 2022 Kybernetik //
  2. #pragma warning disable CS0649 // Field is never assigned to, and will always have its default value.
  3. using UnityEngine;
  4. namespace Animancer.Examples.Events
  5. {
  6. /// <summary>Uses Animancer Events to play a sound randomly selected from an array.</summary>
  7. /// <example><see href="https://kybernetik.com.au/animancer/docs/examples/events/footsteps">Footstep Events</see></example>
  8. /// https://kybernetik.com.au/animancer/api/Animancer.Examples.Events/FootstepEvents
  9. ///
  10. [AddComponentMenu(Strings.ExamplesMenuPrefix + "Footstep Events - Footstep Events")]
  11. [HelpURL(Strings.DocsURLs.ExampleAPIDocumentation + nameof(Events) + "/" + nameof(FootstepEvents))]
  12. public sealed class FootstepEvents : MonoBehaviour
  13. {
  14. /************************************************************************************************************************/
  15. [SerializeField] private AnimancerComponent _Animancer;
  16. [SerializeField] private ClipTransition _Walk;
  17. [SerializeField] private AudioClip[] _Sounds;
  18. /************************************************************************************************************************/
  19. private void OnEnable()
  20. {
  21. _Animancer.Play(_Walk);
  22. }
  23. /************************************************************************************************************************/
  24. // Called by Animancer Events.
  25. public void PlaySound(AudioSource source)
  26. {
  27. source.clip = _Sounds[Random.Range(0, _Sounds.Length)];
  28. source.Play();
  29. }
  30. /************************************************************************************************************************/
  31. }
  32. }