Пример #1
0
    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);
    }
Пример #2
0
    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);
    }
Пример #3
0
    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");
        }
    }