- Home /
How to get an enemy to go to a location and then return.,Hi,
I'm creating a 2D top-down game and I want a certain type of enemy to come out of a hole to attack the player and then return when they miss the player. (The enemies are one shot killers.) I have a basic idea for what I want to happen, but I don't know how to code it. I want the enemy to come out of hiding when the player reaches a certain area around it, head in the player's direction, and then smoothly return to it's hiding spot. I can't find anything for coding this type of behavior.,
Answer by Vilhien · Jul 17, 2018 at 08:02 PM
Hey Silentranger00,
The most fun I get from working with Unity is thinking out code and getting it to work.
Sounds like a lot of distance checks.
1, to wait for the player to get close before initiating the movement towards the player.
2, movement towards the player, with a distance check for when they get close to initiate the attack.
3 a check to see if the attack went off, then a return movement call back to its initial starting position.
For how you'd write it, I'm not an expert by any means but I've dabbled now for about a years time.
You're going to need..
A starting Position for the enemy (vector3) A Player Transform reference A distance float (to start the attack) a attackdistance float (to tell when the attack goes off by proximity) An "moveattack" bool Some sort of home position reference.
Basically as follows. on start, startingposition=transform.position;
during update or however you'd like. if(moveattack==true) { if(player.transform-transform.position).sqmagnitude5) Destroy(player)
moveattack=false;
} if(moveattack==false) transform.position= Mathf.Lerp(transform.position,startingposition.position,.1f*Time.deltaTime);
I wish you the best, and I didn't know much before I started.. I'd strongly suggest watching a few youtubes, reading the manual on spots specific to what you're working on, and by all means research similar things online specific to the part you're working on. I have my own questions, but, I often times find its much more rewarding to write the code myself and struggle with it, as I'm extremely happy when things turn out to work the way I envisioned..
Now that said.. I'm definitely no expert. My above idea for how to fix your problem is only a suggestion and is likely NOT the most efficient way to do so. Best of luck!