This is a camera controller that can be use for RTS games made in Unity.
It's far from perfect but it does the job pretty well and fast.
Here is the list of what is currently implemented:
Keyboard
- W, A, S and D to pan
- Q and E to rotate
- R and F to zoom
- Right click and drag to pan
- Move the mouse to one of the edges of the screen to pan
- Middle mouse button to rotate horizontally and vertically
- If an object is tagged with Ground layer (this can be anything you want as long as you set it in the inspector in the groundLayer variable to your liking) and AdaptToTerrainHeight is set to true, the camera will automatically go up when it reaches the minimum zoom set in the zoomMin variable
- Turn on Gizmos in the Game tab to see the ray from the camera movement
- Camera is set to smooth it's movement to the desired location, you can turn this on and off with the smoothing variable and set the smoothingFactor variable as well
Part of this code is similar to the one found in this video https://www.youtube.com/watch?v=_adEYoaArc4 because that's where I got some ideas for the camera controller.
TODO:
Use the terrain limits to clamp the camera movement.