using System; using System.Collections; using System.Collections.Generic; using UnityEngine; namespace BITKit.Animations { public class OverrideAnimatorFallbackController : MonoBehaviour { [SerializeField, ReadOnly] private bool _isOverride; [SerializeField, ReadOnly] private string _buildReport="None"; [SerializeField] private AnimatorOverrideController overrideController; [SerializeField] private AnimatorOverrideController[] additionalOverrideControllers; private void Start() { if (!overrideController) return; if (!TryGetComponent(out var animator) || animator.runtimeAnimatorController is not AnimatorOverrideController sourceController) return; var controller = sourceController.CopyAndFillMissingContent(overrideController); foreach (var additional in additionalOverrideControllers) { controller = controller.CopyAndFillMissingContent(additional); } animator.runtimeAnimatorController = controller; _isOverride = true; } } }