using System.Collections.Generic; using Sirenix.OdinInspector; using UnityEditor; using UnityEngine; namespace UnityTest.ZXL { public class AnimatorManager : BaseAutoMono { public Dictionary> dictionary = new Dictionary>(); public List gameObjects = new List(); public void HideAll() { foreach (var go in gameObjects) { go.SetActive(false); } } public List Get(string aniName) { dictionary.TryGetValue(aniName, out List list); return list; } #if UNITY_EDITOR [Button("AddGo")] void AutoAddGo() { gameObjects = new List(); for (var i = 0; i < transform.childCount; i++) { gameObjects.Add(transform.GetChild(i).gameObject); } } [Button("Add")] void AutoAdd() { var activeObject = Selection.activeObject as GameObject; var animators = activeObject.GetComponentAllChild(); foreach (var animator in animators) { var animatorName = animator.name; if (animator.transform.parent != null) { animatorName = animator.transform.parent.name; } if (dictionary.ContainsKey(animatorName)) dictionary[animatorName].Add(animator); else dictionary.Add(animatorName, new List() { animator }); } } #endif } }