それなりにランダムでパトロールはしますが、プレイヤーに近づいても攻撃しません。このコードで間違っている箇所がありますか?決まった距離に近づくとプレイヤーに向かって歩き始め、至近距離で攻撃するようにしました。敵のインスペクターのスクリプトにはコントローラーを入れています。
void Start() { anim = GetComponent<Animator>(); agent = GetComponent<NavMeshAgent>(); agent.autoBraking = false; GotoNextPoint(); FPSController = GameObject.Find("FPSController"); } void Update() { float distance = Vector3.Distance(player.position, this.transform.position); Vector3 direction = player.position - this.transform.position; if (distance < 25){ direction.y = 0; this.transform.rotation = Quaternion.Slerp(this.transform.rotation, Quaternion.LookRotation(direction), 0.1f); if (direction.magnitude < 5) { anim.SetBool("isAttacking", true); anim.SetBool("isWalking", false); anim.SetBool("isIdole", false); } else if (direction.magnitude < 15) { anim.SetBool("isWalking", true); anim.SetBool("isAttacking", false); anim.SetBool("isIdle", false); } else if (direction.magnitude < 20) { anim.SetBool("isIdle", true); anim.SetBool("isWalking", false); anim.SetBool("isAttacking", false); } else { GotoNextPoint(); } } } void GotoNextPoint() { var nextPoint = new Vector3(Random.Range(-40.0f, 40.0f), 0.0f, Random.Range(-40.0f, 40.0f)); agent.SetDestination(nextPoint); } }
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/03/26 09:53
2021/03/26 10:45