Quantcast
Channel: Questions in topic: "error message"
Viewing all articles
Browse latest Browse all 2891

Navmesh spam console when desactivated

$
0
0
Hello ! I finished my zombie AI script, the zombie chase the player, when he's close of the player, he stop his nav mesh agent for attacking. Same when he dies, nav mesh agent have to be deactivated when zombie is dead. The problem is the console is spammed by this error : **"SetDestination" can only be called on an active agent that has been placed on a NavMesh. UnityEngine.AI.NavMeshAgent:SetDestination(Vector3) ZombAI:Update() (at Assets/Scripts/ZombAI.cs:40)** Keep the console clear is better for working but I don't know how to fix this. This is my script (I know it's a bit messy but it's work) : using System.Collections; using System.Collections.Generic; using UnityEngine; public class ZombAI : MonoBehaviour { public float ChasingSpeed = 3.5f; public float SpeedWhenAttack = 1f; public int ScoreValue = 1; public Collider zombieCollider; public Rigidbody zombieRigid; public Collider ZombieSphere; public GameObject MinimapIndicator; private Animator anim; private Transform player; private UnityEngine.AI.NavMeshAgent nav; //private PlayerHealth playerscript; private bool PlayerInRange; private Enemy enemyScript; private bool CanCall; void Awake () { anim = GetComponent (); player = GameObject.FindGameObjectWithTag ("Player").transform; nav = GetComponent (); //playerscript = player.GetComponent (); PlayerInRange = false; anim.SetBool ("AttackFinished", false); enemyScript = GetComponent (); CanCall = true; } void Update () { if (PlayerHealth.PlayerAlive == true) { nav.SetDestination (player.position); nav.speed = ChasingSpeed; anim.SetBool ("IsIdle", false); } else { nav.enabled = false; nav.speed = 0f; anim.SetBool ("IsIdle", true); anim.SetBool ("AttackFinished", true); } if (PlayerInRange == true) { nav.speed = SpeedWhenAttack; nav.enabled = false; anim.SetBool ("IsAttacking", true); } else { nav.speed = ChasingSpeed; nav.enabled = true; anim.SetBool ("IsAttacking", false); } if (enemyScript.health <= 0) { nav.enabled = false; } if (enemyScript.health <= 0 && CanCall == true) { transform.gameObject.tag = "Dead"; anim.SetTrigger ("IsDead"); ScoreManager.Score += ScoreValue; CanCall = false; enemyScript.enabled = false; zombieCollider.enabled = false; zombieRigid.isKinematic = true; ZombieSphere.enabled = false; MinimapIndicator.SetActive (false); } } void OnTriggerEnter (Collider col) { if (col.CompareTag ("Player")) { PlayerInRange = true; } } void OnTriggerExit (Collider col) { if (col.CompareTag ("Player")) { PlayerInRange = false; } } } If someone know I would be grateful !

Viewing all articles
Browse latest Browse all 2891

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>