public void DamageEnd()//仲間を呼ぶ { p_ModelAnim.SetBool("isWalk", false); p_ModelAnim.SetBool("isRun", false); p_ModelAnim.SetBool("isWarning", false); TargetInit(); Mode = eMODE.Pursuit;//追跡モードに移行する }
private void OnFound(GameObject foundObj)//探索中怪しいものを見つけたら { lTarget.Add(foundObj); if (/*lTarget.Count > 0*/ foundObj.tag == "Player") { fNowTime = 0.0f; Mode = eMODE.Vigilance;//警戒モードに移行 Debug.Log("HIt"); } }
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; //} }
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;//警戒モード移行 } } }
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; //戦闘態勢に移行 } }
public void AttackEnd()//攻撃終了の合図 { TargetInit(); Mode = eMODE.Pursuit;//追跡モードに移行する }