Security Cameras using C#
Have you thought about creating a security camera mechanic for your game? Here is a simple way to do that!
What you need:
- 3 Models for Security Cameras (Can be just simple boxes)
- A Script that handles the security camera switches and main camera movement
- UI elements (TextField and 2 Buttons)
Script
Namespaces and variables with comments
We will add the Empty GameObject to the Cameras array which is the parent for our mainCamera and the model. And we will turn that empty GameObject to make it look like that the camera model is turning.
You can tweak the rotation of that empty GameObject how you like.
The most important part is the curCamPosIndex which we use to determine which cam we are using currently.
In Start() function
- Set the Main Camera to cam
- Set the curCamPosIndex to 0, which is the first camera in the array
- Move the cam to the cameras[curCamPosIndex] position according to which is the curCamPosIndex.
- Changing the Text according to which camera is being used
In Update() function
We will have the turn mechanic for our camera if the player presses either Right Arrow or Left Arrow.
Rotating Camera
In the RotateRight() method we rotate the current camera parent with
Transform.Rotate
public void Rotate(Vector3 eulers, Space relativeTo = Space.Self);
eulers = The rotation to apply in euler angles.
Time.deltaTime = We get the smooth rotation.
relativeTo = The space where the rotation happens, it can be either locally around the object or globally.
RotateLeft() has only one change from RotateRight.
The Vector3 we use changes to -rotationVector which will change it to
(0,-10,0)
Changing Camera
When we change the camera, we have two buttons “<-” and “->”, these two will have different methods that they use.
We use the method below in the button which is “->”
In the if statement we keep the index between 0–2 since there are only 3 cameras. 0, 1 and 2. So we can’t increment anymore since the integer is greater than 2.
When we set the parent to our camera, we use Transform.SetParent
This method is almost the same as the ChangeCameraRightButton(), except we check if the curCamPosIndex is greater than 0, if this is true, then we decrease the curCamPosIndex and update the cam position, parent and TextField.