protected override GameObject GetModel(int id) { RaceGraphics raceGraphics = racePicker.Race.Graphics; GameObject result = Instantiate(raceGraphics.ModelObject, transform); result.transform.localEulerAngles = new Vector3(0, 180, 0); result.GetComponentInChildren <Animator>().runtimeAnimatorController = raceGraphics.UiAnimationController; return(result); }
public static void AddUiAnimationController(GameObject modelObject, UnitData unitData) { Animator animator = modelObject.GetComponentInChildren <Animator>(); if (animator == null) { Debug.LogWarning("Animator not found"); return; } RaceGraphics raceGraphics = Main.StaticData.Game.Races.GetValue(unitData.RaceName).Graphics; if (raceGraphics.UiAnimationController == null) { Debug.LogWarning("UiAnimationController not found"); return; } animator.runtimeAnimatorController = Object.Instantiate(raceGraphics.UiAnimationController); }
public static void SpawnAnimator(this Unit unit) { RaceGraphics raceGraphics = Main.StaticData.Game.Races.GetValue(unit.UnitData.RaceName).Graphics; Animator animator = unit.Graphics.RaceModel.GetComponentInChildren <Animator>(); if (animator != null) { animator.runtimeAnimatorController = Object.Instantiate(raceGraphics.WorldAnimationController); animator.gameObject.AddComponent <UnitAnimator>(); if (unit.UnitData.UsesRootMotion) { animator.applyRootMotion = true; animator.gameObject.AddComponent <RootMotionRedirector>(); } else { animator.applyRootMotion = false; } } else { Debug.LogWarning("No animator found"); } }