x


Camera movement in a 2D? (like angry birds)

Hello,

The project is a projectile motion using a cannon. It is a

  1. Side scroller ( meant that the view is 2D).
  2. The canon has to be placed on the left corner and fire in a Projectile Fashion.

Expectation :

My main aim is to view the entire scene when enemy is spawned randomly (once per time). Mainly I want the user to have the vision as of where the enemy cube (target) is placed. I would also want a transition to be smooth. Say, could take half a second. Moreover as because the cube is spawned everytime it is instantiated, sometimes the cube might be very near the cannon. If that is the case - I would be happy if the cube retreats back to the original position (something like in the screenshot "game_view"). I was just looking into the documentation and I was thinking whether that would be possible either by alternating the z axis of the camera of it's FOV. But I thought someone who had prior experience in this type of scenario could guide me well. The entire game moves on X-Y Plane. Hence at all cases Z co-ordinates is '0'.

ScreenShots:

  1. Game View alt text The game view which is the normal position of the camera. Whenever the enemy is within this view I would prefer the camera to remain in this position. I mean I would like to camera to have this position as the least position and move from here to cover the enemy (which spawns only) onto the positive far end of X co-ordinates.
  1. Scene View alt text That cube at the far end is the enemy. It is the target for the enemy.
  1. FOV change alt text This is one of the options I had.
  1. Transform Z co-ordinates alt text Another option I have.
  1. Angry Birds : alt text I would like to have something like this. I think the camera lets the view the entire scene by just zooming out.

Code :

I have ideas in bits and pieces. But for the transition I could use Unity's in build TIME function.

Enemy's Position :

The enemy's position is set to random on one co-ordinate only. I set the position through,

function e_spawn()
{
    pos = projscript.spawn();
    var position: Vector3 = Vector3(pos, 1, 0);
    Instantiate(ene_pos, position, Quaternion.identity);
}

The turret's position is always fixed and It is set to Vector3(-0.02,1.05,0)

Request :

I humbly request is could someone help me out. I think I am stuck. If I am helped with some code, I would highly appreciate. I hope I did not feed in too much on information and at the same time provide all the required information.

Thank you very much

more ▼

asked Dec 07 '11 at 04:58 AM

Karsnen gravatar image

Karsnen
736 26 45 54

(comments are locked)
10|3000 characters needed characters left

1 answer: sort oldest

Hi karsnen,

If I understand correctly all you want to do is zoom in and out. Then I think that just changing the FOV of the camera should be sufficient. As for making it smooth all you need to do is set a startFOV and an endFOV, and let the FOV change over time. Something like this:

var mnCamera : Camera;
var startFOV = 60;
var endFOV = 30;
var changeIncrement = 0.3;

if (mnCamera.fieldOfView >= endFOV)
       {
         mnCamera.fieldOfView -= changeIncrement;     
       }
 if(mnCamera.fieldOfView <= startFOV)
       {
         mnCamera.fieldOfView += changeIncrement;
more ▼

answered Dec 08 '11 at 12:53 PM

hatzalex gravatar image

hatzalex
61 7 9 10

Thanks bud. I will implement it. I guess that is something similar to what I expect.

Dec 08 '11 at 10:59 PM Karsnen
(comments are locked)
10|3000 characters needed characters left
Your answer
toggle preview:

Up to 2 attachments (including images) can be used with a maximum of 524.3 kB each and 1.0 MB total.

Follow this question

By Email:

Once you sign in you will be able to subscribe for any updates here

By RSS:

Answers

Answers and Comments

Topics:

x3460
x3001
x1036
x59
x21

asked: Dec 07 '11 at 04:58 AM

Seen: 1576 times

Last Updated: Dec 08 '11 at 10:59 PM