Пример #1
0
    public void DamageEnd()//仲間を呼ぶ
    {
        p_ModelAnim.SetBool("isWalk", false);
        p_ModelAnim.SetBool("isRun", false);
        p_ModelAnim.SetBool("isWarning", false);

        TargetInit();
        Mode = eMODE.Pursuit;//追跡モードに移行する
    }
Пример #2
0
    private void OnFound(GameObject foundObj)//探索中怪しいものを見つけたら
    {
        lTarget.Add(foundObj);

        if (/*lTarget.Count > 0*/ foundObj.tag == "Player")
        {
            fNowTime = 0.0f;
            Mode     = eMODE.Vigilance;//警戒モードに移行
            Debug.Log("HIt");
        }
    }
Пример #3
0
    void WatchOut()                               //警戒モード
    {
        fNowTime += Time.deltaTime;               //警戒モードになってからの経過時間
        agent.SetDestination(transform.position); //そこの場所で一旦止まる



        if (fNowTime > fTimeOut) //警戒時間がある一定になったら
        {
            Mode = eMODE.Wander; //徘徊モードに移行
        }

        for (int i = 0; i < lTarget.Count; i++)                   //索敵内にプレイヤーがいるかチェック
        {
            if (lTarget[i] != null && lTarget[i].tag == "Player") //いたら
            {
                Mode = eMODE.Pursuit;                             //追跡モードに移行
                break;
            }
        }


        //if (count > 150)
        //{
        //    switch (isLeftRight)
        //    {
        //        case true:
        //            isLeftRight = false;
        //            break;
        //        case false:
        //            isLeftRight = true;
        //            break;
        //    }
        //    count = 0;
        //}
        //switch (isLeftRight)
        //{
        //    case true:
        //        transform.Rotate(new Vector3(0, 1, 0));
        //        count++;
        //        break;
        //    case false:
        //        transform.Rotate(new Vector3(0, -1, 0));
        //        count++;
        //        break;
        //}
    }
Пример #4
0
 void Assistance()//援護に向かう
 {
     if (AidTarget != new Vector3(0, 0, 0))
     {
         float fDis = Vector3.Distance(transform.position, AidTarget);//目的地までの距離を設定
         if (fDis > 10.0f)
         {
             agent.SetDestination(AidTarget);//プレイヤーのところまでイクゥゥゥゥゥウウウウ
         }
         else
         {
             AidTarget = new Vector3(0, 0, 0);
             fNowTime  = 0.0f;
             Mode      = eMODE.Vigilance;//警戒モード移行
         }
     }
 }
Пример #5
0
    void Chase()                                                  //追跡
    {
        GameObject Target = null;                                 //目的のやつ

        for (int i = 0; i < lTarget.Count; i++)                   //索敵内にプレイヤーがいるかチェック
        {
            if (lTarget[i] != null && lTarget[i].tag == "Player") //いたら
            {
                Target = lTarget[i];                              //プレイヤーの情報を共有する
            }
        }

        if (Target == null)             //範囲内にプレイヤーがいなければ
        {
            fNowTime = 0.0f;            //経過時間をリセット
            Mode     = eMODE.Vigilance; //警戒モードに移行

            return;
        }


        float fDis = Vector3.Distance(transform.position, Target.transform.position);//目的地までの距離を設定

        if (GetComponent <NavMeshAgent>() != null && fDis > fEnemyDis)
        {
            agent.SetDestination(Target.transform.position);//プレイヤーのところまでイクゥゥゥゥゥウウウウ
            var aim  = new Vector3(Target.transform.position.x, transform.position.y, Target.transform.position.z) - new Vector3(transform.position.x, transform.position.y, transform.position.z);
            var look = Quaternion.LookRotation(aim);
            transform.localRotation = look;
        }
        else if (fDis < fEnemyDis)
        {
            agent.SetDestination(transform.position);
            fAttackTime = 0.0f;         //isAttack = true;
            Mode        = eMODE.Attack; //戦闘態勢に移行
        }
    }
Пример #6
0
 public void AttackEnd()//攻撃終了の合図
 {
     TargetInit();
     Mode = eMODE.Pursuit;//追跡モードに移行する
 }