public void SetMenu(Type type)
        {
            CurrentAnimation = new TargetAnimation(type, previousType: CurrentMenu);
            Debug.Log($"SetMenu, curr={type}, prev={CurrentAnimation.PreviousType}");

            if (PreviousMenu != null &&
                PreviousMenu.HasInterface(typeof(IMenuCallbacks)) &&
                PreviousMenu.IsSubclassOf(typeof(ComponentSystemBase)))
            {
                var system = (IMenuCallbacks)World.GetExistingSystem(PreviousMenu);
                system.OnMenuUnset(CurrentAnimation);
            }

            if (type != null &&
                type.HasInterface(typeof(IMenuCallbacks)) &&
                type.IsSubclassOf(typeof(ComponentSystemBase)))
            {
                var system = (IMenuCallbacks)World.GetExistingSystem(type);
                system.OnMenuSet(CurrentAnimation);
            }

            OnMenuUpdate?.Invoke(CurrentAnimation);
        }
 public void SetManual(TargetAnimation target)
 {
     CurrentAnimation = target;
     OnMenuUpdate?.Invoke(CurrentAnimation);
 }