Camera moving itself, still following an object


Im working on this 2D-spaceshooter game, and since I’m just a monkey and couldn’t affect anyway in gamedesign, camera angle is from straight upwards and ship can’t turn in angles on its own. The idea is that camera goes forward always, and player just goes back and forth, and strafes ship left or right. Im out of ideas, how should I do this? I mean, if there would be only one route, I could do it easily, but since there are lot of routes, I can’t just make the camera follow premade route.

Idea is that ship starts from bottom, and turns automatically (camera turns too) when hitting green lines, and player can choose from different routes. Code examples are welcome too, but I just need ideas, little push to somewhere.

Your gateway idea is good. I would try sth like this:

Gateway GameObject with Trigger Collider

  • Custom Component with Array of GameObjects (these are waypoints your camera will follow)
  • Create Empty GameObjects as waypoints and add them to the array
  • Camera follows the waypoints until you clear another gate, then it follows the new set of waypoints from the new gate

Here is my equally impressive Paint mockup

Make sure the waypoints always exceed the next gate so the camera keeps moving until the player has passed a new gate.

I hope I make sense

Edit: Oh yeah, the most important part… rotate the camera to always face the next waypoint and just parent your ship to the camera… then, by using localPosition to offset the plane, you can always make sure the plane stays within camera boundaries with simple checks

Vector3 localPosition = planeObject.transform.localPosition;
if( localPosition .x > (yourBoundaryHere) )
    localPosition.x = yourBoundaryHere;
//do the same with negative x, positive y and negative y

//and then finally
planeObject.transform.localPosition = localPosition;

That way you don’t have to worry about the rotation of the plane