| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 | using System;using GPUECSAnimationBaker.Engine.AnimatorSystem;using Unity.Entities;using UnityEngine;namespace GPUECSAnimationBaker.Samples.SampleScenes._6_Events{    public class EvenLoggerBehaviour : MonoBehaviour    {        private TMPro.TextMeshProUGUI text;        public void Start()        {            text = GetComponent<TMPro.TextMeshProUGUI>();            EventHandlerSystem eventHandler =                World.DefaultGameObjectInjectionWorld.GetOrCreateSystemManaged<EventHandlerSystem>();            eventHandler.logger = this;        }        public void Log(string toLog)        {            text.text = text.text.Insert(0, toLog);        }    }        public partial class EventHandlerSystem : SystemBase     {        public EvenLoggerBehaviour logger;                        protected override void OnUpdate()        {            if (logger != null)            {                EntityManager entityManager = World.EntityManager;                Entities.ForEach((in DynamicBuffer<GpuEcsAnimatorEventBufferElement> gpuEcsAnimatorEventBuffer, in Entity eventEntity) =>                {                    foreach (GpuEcsAnimatorEventBufferElement gpuEcsAnimatorEvent in gpuEcsAnimatorEventBuffer)                    {                        string entityName = eventEntity.ToString();                        string animationId = ((AnimationIdsMaria)gpuEcsAnimatorEvent.animationId).ToString();                        string eventId = ((AnimationEventIdsMaria)gpuEcsAnimatorEvent.eventId).ToString();                        string time = UnityEngine.Time.time.ToString();                        logger.Log($"Entity:{entityName}, Animation:{animationId}, Event: {eventId}, Time: {time}\n");                    }                }).WithoutBurst().WithStructuralChanges().Run();            }        }    }}
 |