- Home /
Spawning enemies for space shooter game.
Hey I'm kinda stuck on wrapping my head around the idea of spawning enemies for a top down space shooter. In most cases would people spawn them outside the camera view or would they spawn them on the very edge of the view?
Either way, how would you do this? If anyone has done it before would be great help. Also would it be easier to make the player ship and the camera actually move, or make them in a static position with scrolling assets to make a fake moving feel?
Either way, if anyone knows how to spawn the enemies just outside the camera view to get them to move in and make it look smooth, that would be great.
Answer by robertbu · Mar 07, 2013 at 06:33 AM
You can use Viewport coordinates to spawn just beyond the edges. Viewport coordinates map to the screen with (0,0) in the lower left and (1,1) in the upper right. Any values beyond this frame will be outside he view. For example a coordinate of (-.15, .5) will spawn just of the left edge and centered half way up the screen. Likewise a value of (1.15, .25) will be a quarter of the way up on the right edge of the screen. To convert these to usable world coordinates use Camera.ViewportToWorldPoint() Before you can use this function, you need to decide (or randomly generate) a value for how far away from the screen to generate the point and assign that value to 'z'.
var v3Pos = Vector3(0.5, 1.1, 10.0);
v3Pos = Camera.main.ViewportToWorldPoint(v3Pos);
The resulting position will be just above the center of the screen 10 units from the camera. Note the calculation is for that specific position. The objects you spawn will have some width, so you will need to compensate. In other words if you were to spawn at (0.0, 0.5, 10), half of your object would be showing since the position would most likely be the center of the object.
I have never had such a clear explanation on here before. Not only did I learn how to do what I want I actually learned how to do it. Thanks.
Your answer
Follow this Question
Related Questions
Multiplayer click and spawn 1 Answer
Camera shows objects in wrong order 1 Answer
C# 2d Spawn Randomly along Camera Borders 1 Answer
Mouse position in camera view area 1 Answer
How to make camera position relative to a specific target. 1 Answer