Quantcast
Channel: Questions in topic: "enemy"
Viewing all articles
Browse latest Browse all 1488

Making an enemy go back to its spawn after losing target

$
0
0
**Hey everyone, this is my enemy script - it has everything (the enemy runs after the player when he is inside a circle collider attached to him). But this is not the problem - I'm trying to make it so when the enemy loses sight of the player the enemy has to return to its spawnpoint 10 seconds after waiting.** This is the code for my enemy (at the bottom in *IENumerator(ReturnToSpawn())* is what I've already tried with no success): public class EnemyMovement : MonoBehaviour { public float moveSpeed; public int maxHealth = 20; public int currentHealth; public HealthBar healthBar; public GameObject EnemyHealthBar; private Transform target; public Animator animator; private bool isWalking; void Start() { currentHealth = maxHealth; healthBar.SetMaxHealth(maxHealth); } private void Update() { if(target != null) { float step = moveSpeed * Time.deltaTime; transform.position = Vector2.MoveTowards(transform.position, target.position, step); EnemyHealthBar.active = true; isWalking = true; animator.SetBool("isWalking", isWalking); } else { EnemyHealthBar.active = false; isWalking = false; animator.SetBool("isWalking", isWalking); //StartCoroutine(ReturnToSpawn()); } animator.SetFloat("Horizontal", target.position.x - transform.position.x); animator.SetFloat("Vertical", target.position.y - transform.position.y); } private void OnTriggerEnter2D(Collider2D other) { if(other.gameObject.tag == "Player") { target = other.transform; } } private void OnTriggerExit2D(Collider2D other) { if(other.gameObject.tag == "Player") { target = null; } } /*IEnumerator ReturnToSpawn() { yield return new WaitForSeconds(10f); target = spawn; float step = moveSpeed * Time.deltaTime; transform.position = Vector2.MoveTowards(transform.position, target.position, step); if(transform.position == target.position) { isWalking = false; } }*/ /*void TakeDamage(int damage) { currentHealth -= damage; healthBar.SetHealth(currentHealth); }*/ } And this is the enemy script attached to my enemy in the inspector in case you need it: ![alt text][1] [1]: /storage/temp/193342-unknssdsdsddssdown.png Also, I tried adding a parent to the enemy with the parent's position being now set with the enemy's position on the map, and the enemy child's position being set as 0, 0. I made it so when the enemy stops chasing you it sets the target to the enemy parent but I still didn't find success with it. Every bit of help would be much appreciated.

Viewing all articles
Browse latest Browse all 1488

Latest Images

Trending Articles



Latest Images

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