Just a quick and easy question about camera's

Hi all,

I've just started with Unity and Game Design in general really, and I'm little unsure about best practice.

Here's my scene at the moment:

  • I have a box falling from 100y onto my terrain.
  • The box has a camera looking at it setup as a child, so it follows it on it's tumble to the terrain.

When the box gets within 10y from the terrain, i want the camera to cap it's y axis (so it doesn't slam into the floor and bounce around with the box). I'm pretty sure I can achieve this, but I'm not sure whether to:

  • Signal the camera to stop moving when it passes through a trigger cube/sphere/area, and simply LookAt the box after that OR...
  • Implement a script that tells the camera when it reaches 10y from the terrain to stop, and LookAt the box after that

I think either of these would work, but as I was always taught to follow best practice, and have no idea what that is in 3D environments, then I'm wondering what you guys would do.

Hope I made myself clear, and thanks to anyone who takes the time to help out. :)

I'm not usually in the business of teaching people the "best" way to do things, because I know I've used very unusual methods to achieve my means in the past and continue to do so. :)

For me personally, I would go with the second way you mentioned. For really only a few minor reasons. One, it's universal. You don't have to make a GIANT trigger box to make sure that there's nowhere the camera won't keep falling. It will simply stop at whatever Y position you want.

However, as you get more advanced in your project, you might start getting involved in a non-flat terrain, where a definitive Y value to stop at might still end up sticking the camera into a higher piece of ground. In which case, you would want to start exploring the options of Physics.Raycast, and checking the length of a ray shot from the camera down to the ground to always ensure that it's truly X units above whatever ground is there.