public void Init(Unit u, GameObject mesh)
    {
        m_Unit = u;


        int index = u.Inventory.EquipedWeapon.WeaponMesh.WeaponIndex;

        m_Unit.Actions.OnTargetAction += (a, b) => { UnitAnimator.SetAimTarget(b); };

        m_Unit.Actions.OnActionStarted += action =>
        {
            if (action.GetType() == typeof(UnitAction_Move))
            {
                OnMoveStart(action as UnitAction_Move);
            }
        };

        m_Unit.Stats.OnDmgReceived += () =>
        {
            PlayAnimation(UnitAnimationTypes.bHit);
        };

        rush = gameObject.AddComponent <UI_AdrenalineRushBase>();
        rush.Init(u.Stats);
        rush.OnRushGain += () =>
        {
            PlayAnimation(UnitAnimationTypes.bRage);
        };

        UnitAnimator = UnitFactory.MakeUnitAnimations(mesh, u.Inventory.EquipedWeapon.WeaponMesh, index, mesh.AddComponent <AnimationCallbackCaster>(), () => { return(rush.HasRush); });
    }