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

32 lines
1007 B
C#
Raw Normal View History

2023-11-30 00:23:23 +08:00
using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
namespace BITKit.Animations
{
public class OverrideAnimatorFallbackController : MonoBehaviour
{
2023-12-03 17:35:43 +08:00
[SerializeField, ReadOnly] private bool _isOverride;
2023-11-30 00:23:23 +08:00
[SerializeField, ReadOnly] private string _buildReport="None";
[SerializeField] private AnimatorOverrideController overrideController;
2023-12-03 17:35:43 +08:00
[SerializeField] private AnimatorOverrideController[] additionalOverrideControllers;
2023-11-30 00:23:23 +08:00
private void Start()
{
if (!overrideController) return;
if (!TryGetComponent<Animator>(out var animator) ||
animator.runtimeAnimatorController is not AnimatorOverrideController sourceController) return;
2023-12-03 17:35:43 +08:00
var controller = sourceController.CopyAndFillMissingContent(overrideController);
foreach (var additional in additionalOverrideControllers)
{
controller = controller.CopyAndFillMissingContent(additional);
}
animator.runtimeAnimatorController = controller;
2023-11-30 00:23:23 +08:00
_isOverride = true;
}
}
}