Ejemplo n.º 1
0
 private void OnTriggerStay(Collider other)
 {
     if (other.tag == "Player")
     {
         // 敵キャラクターの状態を取得
         EnemyController.EnemyState state = GetComponentInParent <EnemyController>().GetState();
         // 敵キャラクターが追いかける状態でなければ追いかける設定に変更
         if (state != EnemyController.EnemyState.Run)
         {
             Debug.Log("プレイヤー発見");
             GetComponentInParent <EnemyController>().SetState("Run", other.transform);
         }
     }
 }
Ejemplo n.º 2
0
    public void ActivateBubble(EnemyController.EnemyState state, float duration)
    {
        switch (state)
        {
        case EnemyController.EnemyState.Patrolling:
            maxDuration  = duration;
            timer        = 0;
            image.sprite = sprites[0];
            break;

        case EnemyController.EnemyState.Seeking:
            maxDuration  = duration;
            timer        = 0;
            image.sprite = sprites[1];
            break;

        case EnemyController.EnemyState.FightingPlayer:
            maxDuration  = duration;
            timer        = 0;
            image.sprite = sprites[2];
            break;
        }
    }
    /// <summary>
    /// Sets the state of all the enemies at once.
    /// </summary>
    public void SetEnemiesState(EnemyController.EnemyState state)
    {
        //Set horde state
        if (m_HordeState == state)
        {
            return;
        }
        m_HordeState = state;

        //Set enemies states
        for (int i = 0; i < m_Enemies.Count; i++)
        {
            if (m_Enemies[i].m_State != state)
            {
                m_Enemies[i].SetState(state);
            }
        }
    }
    /// <summary>
    /// If enemies were wandering, they are now searching
    /// </summary>
    public void OnPlayerFound(Vector3 pos)
    {
        //Set horde state
        if (m_HordeState != EnemyController.EnemyState.Wander)
        {
            return;
        }
        m_HordeState = EnemyController.EnemyState.Search;

        //Set enemies states
        for (int i = 0; i < m_Enemies.Count; i++)
        {
            if (m_Enemies[i].m_State == EnemyController.EnemyState.Wander)
            {
                m_Enemies[i].SetState(EnemyController.EnemyState.Search);
            }
        }

        //Tell enemies where the player is
        BroadcstPlayerPosition (pos);
    }