示例#1
0
    void OnCollisionEnter2D(Collision2D col)
    {
        if (col.transform.tag == "Player")
        {
            col.gameObject.GetComponent <Health>().TakeDamage(m_explodeDamage, gameObject.GetComponent <Collider2D>());

            m_currentState = KamikazeState.Death;
        }
    }
示例#2
0
    // Use this for initialization
    void Start()
    {
        m_currentState = KamikazeState.Idle;

        m_rb = gameObject.GetComponent <Rigidbody2D>();

        GameObject l_playerOne = Managers.GetInstance().GetPlayerManager().GetPlayerOne();
        GameObject l_playerTwo = Managers.GetInstance().GetPlayerManager().GetPlayerTwo();

        m_animator = gameObject.GetComponent <Animator>();

        if (Mathf.Abs(transform.position.x - l_playerOne.transform.position.x) < Mathf.Abs(transform.position.x - l_playerTwo.transform.position.x))
        {
            m_target = l_playerOne;
        }
        else
        {
            m_target = l_playerTwo;
        }
    }
示例#3
0
    // Update is called once per frame
    void Update()
    {
        switch (m_currentState)
        {
        case KamikazeState.Idle:

            if (Mathf.Abs(transform.position.x - m_target.transform.position.x) < m_approachDist)
            {
                if (transform.position.x - m_target.transform.position.x < 0)
                {
                    m_direction = Enums.EnemyApproachDirection.Right;
                }
                else
                {
                    m_direction = Enums.EnemyApproachDirection.Left;
                }

                m_currentState = KamikazeState.Approach;
                AudioManager.GetInstance().PlayClip(8);
            }

            break;

        case KamikazeState.Approach:

            ApplyMovement();

            if (Mathf.Abs(transform.position.x - m_target.transform.position.x) > m_disappearDist)
            {
                Destroy(gameObject);                            //Destroys enemy if player gets too far
            }
            break;

        case KamikazeState.Death:

            GameObject exp = ExplosionManager.Inst.GetExplosion();
            exp.transform.position = transform.position;
            Destroy(this.gameObject);
            break;
        }
    }
示例#4
0
    private void EnterDeathState()
    {
        Debug.Log("Soldier is kill");

        m_currentState = KamikazeState.Death;
    }