public void GiveToDamage(int _AttackerID, int _Damage)
    {
        if (m_Live == E_Live.DEAD)
        {
            return;
        }

        m_Health -= _Damage;
        if (m_Health <= 0.0f)
        {
            m_Live = E_Live.DEAD;
            m_UpperBidyAddAngle = Vector3.zero;
            m_UpperAnimState    = E_UpperBodyAnimState.DEATH;
            m_UnderAnimState    = E_UnderBodyAnimState.DEATH;
            m_Animator.CrossFade("UpperBody.Death", 0.1f);
            m_Animator.CrossFade("UnderBody.Death", 0.1f);
            if (IsAI)
            {
                m_CapsuleCollider.isTrigger = true;
            }
            foreach (Gun g in GetGuns())
            {
                g.GunShotDisable();
            }
        }
    }
    protected virtual void Awake()
    {
        m_UpperAnimState = E_UpperBodyAnimState.IDLE;
        m_UnderAnimState = E_UnderBodyAnimState.LAND;
        GameObject model = Instantiate(m_Model, transform);

        model.transform.localPosition = Vector3.zero;
        model.transform.localRotation = Quaternion.identity;

        m_Animator = GetComponentInChildren <Animator>();
        m_Animator.gameObject.AddComponent <AnimationCallbackEvent>();
        m_Rigidbody       = GetComponent <Rigidbody>();
        m_CapsuleCollider = GetComponent <CapsuleCollider>();
        m_ChestBone       = m_Animator.GetBoneTransform(HumanBodyBones.Chest);
        m_Renderers       = m_Animator.GetComponentsInChildren <SkinnedMeshRenderer>();

        CreateGun();

        // tmp

        GameObject gun      = Resources.Load <GameObject>("Weapons/Gun");
        GameObject leftgun  = Instantiate(gun, m_LeftHandPoint);
        GameObject rightgun = Instantiate(gun, m_RightHandPoint);

        sunTTHelper.SetLocalTransformIdentity(leftgun.transform);
        sunTTHelper.SetLocalTransformIdentity(rightgun.transform);

        m_Gun[0] = leftgun.GetComponent <Gun>();
        m_Gun[1] = rightgun.GetComponent <Gun>();
    }
 public void Revive()
 {
     m_Health            = m_HealthMax;
     m_Live              = E_Live.LIVE;
     m_UpperBidyAddAngle = Vector3.zero;
     m_UpperAnimState    = E_UpperBodyAnimState.IDLE;
     m_UnderAnimState    = E_UnderBodyAnimState.LAND;
     m_Animator.CrossFade(m_UpperBodyTreeKey, 0.1f);
     m_Animator.CrossFade(m_AnimIdleKey, 0.1f);
     if (IsAI)
     {
         m_CapsuleCollider.isTrigger = false;
     }
 }
 public void SetCastMode(int _AnimNumber, bool _UpperCast = true, bool _UnderCast = true)
 {
     if (_UpperCast)
     {
         m_UpperAnimState = E_UpperBodyAnimState.CAST;
         m_Animator.CrossFade("UpperBody.Cast" + _AnimNumber.ToString(), 0.1f);
         foreach (Gun g in GetGuns())
         {
             g.GunShotDisable();
         }
     }
     if (_UnderCast)
     {
         m_UnderAnimState = E_UnderBodyAnimState.CAST;
         m_Animator.CrossFade("UnderBody.Cast" + _AnimNumber.ToString(), 0.1f);
     }
 }