using Unity.Entities; namespace DefaultNamespace { public struct WeaponAnimationEventData : IComponentData { public bool1 Reload; } public class WeaponAnimationEventComponent : ComponentDataProxy { //animator callback public void Reload() { PostEvent((ref WeaponAnimationEventData d) => d.Reload = true); } private void PostEvent(EntityCommandBufferExtensions.ModifyData eAction) { var actorFacade = gameObject.GetComponent(); if (actorFacade != null && actorFacade.World.EntityManager.Exists(actorFacade.Entity)) { actorFacade.World.EntityManager.PostEntityEvent(actorFacade.Entity, eAction); } else { var gameObjectEntity = gameObject.GetComponent(); if (gameObjectEntity != null && gameObjectEntity.EntityManager.Exists(gameObjectEntity.Entity)) { gameObjectEntity.EntityManager.PostEntityEvent(gameObjectEntity.Entity, eAction); } } } } }