// Start is called before the first frame update void Start() { estadoActual = EnemigoIA.Patrulla; target = puntos[1]; Enemigo.position = target.position; velocidad = velocidad * Time.deltaTime; indiceTaregt = 0; }
// Update is called once per frame void Update() { Vector3 dir = target.position - sierra.position; float distance = Vector3.Distance(sierra.position, target.position); float distancePlayer = Vector3.Distance(sierra.position, player.position); sierra.Translate(dir.normalized * velocidad, Space.World); if (estadoActual == EnemigoIA.Patrulla) { target = puntos[indiceTarget]; } { if (distance <= 0.5f) { if (indiceTarget >= puntos.Length - 1) //el propio sistema lee la extencion total del array con "length",si indiceTarget es >= a la extension del //ArrayList sera -1 { indiceTarget = 0; //al llegar a 0 se parara la lista debido a la sorecarga de indice target = puntos[indiceTarget]; //aqui se pone el valor de "target" para tomarlo como recorido } indiceTarget++; //el aumento de un numero +1 target = puntos[indiceTarget]; //se basa en la lectura de indice segun sea lo que lleve } } if (distancePlayer <= 2) { estadoActual = EnemigoIA.Perseguir; } if (estadoActual == EnemigoIA.Perseguir) { target = player; } else if (distancePlayer > 5) { estadoActual = EnemigoIA.Patrulla; } if (estadoActual == EnemigoIA.Perseguir) { target = player; } }
// Update is called once per frame void Update() { Vector3 dir = target.position - sierra.position; float distance = Vector3.Distance(sierra.position, target.position); float distancePlayer = Vector3.Distance(sierra.position, player.position); sierra.Translate(dir.normalized * velocidad, Space.World); if (estadoActual == EnemigoIA.Patrulla) { target = puntos[indiceTarget]; } if (distance <= 0.5f) { if (indiceTarget >= puntos.Length - 1) { indiceTarget = 0; target = puntos[indiceTarget]; } indiceTarget++; target = puntos[indiceTarget]; } // una vez que el player salga de su rango, este volverá a su zona a patrullar if (distancePlayer <= 0.5f) { estadoActual = EnemigoIA.Perseguir; } else if (distancePlayer > 1) { estadoActual = EnemigoIA.Patrulla; } if (estadoActual == EnemigoIA.Perseguir) { target = player; } }
// Update is called once per frame void Update() { Vector2 dir = target.position - Enemigo.position; float distance = Vector2.Distance(Enemigo.position, target.position); float distancePlayer = Vector2.Distance(Enemigo.position, player.position); Enemigo.Translate(dir.normalized * velocidad, Space.World); if (estadoActual == EnemigoIA.Patrulla) { target = puntos[indiceTaregt]; if (distance <= 0.5f) { if (indiceTaregt >= puntos.Length - 1) { indiceTaregt = 0; target = puntos[indiceTaregt]; } indiceTaregt++; target = puntos[indiceTaregt]; } } if (distancePlayer <= 2) { estadoActual = EnemigoIA.Perseguir; } else if (distance > 5) { estadoActual = EnemigoIA.Patrulla; } if (estadoActual == EnemigoIA.Perseguir) { target = player; } }