コード例 #1
0
    public void Attack()
    {
        if (IsDied)
        {
            return;
        }
        if (m_isAttacking)
        {
            return;
        }
        Soldier defender = GM.GetAttacker(this);

        if (defender == null)
        {
            return;
        }
        if (defender.IsDied)
        {
            return;
        }
        StopPatrol();
        StopEscape();

        m_isAttacking = true;
        m_view.transform.LookAt(defender.View.transform.position);
        m_view.ShowAttack(m_data.AttackCD,
                          delegate(){
            float dis = Vector3.Distance(View.transform.position, defender.View.transform.position);
            if (dis > m_data.AttackDistance)
            {
                defender.Miss();
            }
            else
            {
                defender.BeHurt(m_data.Attack + UnityEngine.Random.Range(-5, 5));
            }
        }, delegate(){
            m_isAttacking = false;
        }
                          );
        Debug.Log(m_data.ID.ToString() + ":attack...");
    }