BITFALL/Assets/BITKit/Unity/Scripts/Animator/OverrideAnimatorFallbackCon...

32 lines
1007 B
C#

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<Animator>(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;
}
}
}