So I’ve been working on a multiple-camera system.
1 = Main Camera
2 = First Person
3 = Third Person
When I press a key, the console is reporting my Log as pressing key(s) (each key I press) 4 times.
I’ve been able to get this camera switch to work two times (I’ve had to make this game three times due to losing my computers and sending them in for repairs). For some reason it does not want to cooperate this time.
using UnityEngine;
using System.Collections;
public class CameraController : MonoBehaviour
{
public Camera MainCamera; // Freeform camera (Panable around the character)
public Camera FirstPerson; // First Person Perspective
public Camera ThirdPerson; // Third Person Camera (Over the shoulder)
public GameObject player; // Player reference object
private Vector3 offset; // Offset Vector for distance from the player
// Use this for initialization
void Start ()
{
// Camera default settings
#region
MainCamera = GetComponent<Camera>();
FirstPerson = GetComponent<Camera>();
ThirdPerson = GetComponent<Camera>();
MainCamera.enabled = true;
FirstPerson.enabled = false;
ThirdPerson.enabled = false;
#endregion
// Offset is equal to the transform position minus the player's transform position
offset = transform.position - player.transform.position;
}
// Update is called once per frame
void Update ()
{
// Camera Follows the Player
#region
// Camera will transform its position relative to the player's position and the offset
transform.position = player.transform.position + offset;
#endregion
// Main Camera (Freelow)
if (Input.GetKey(KeyCode.Alpha1)) // Press of the 1 key
{
Debug.Log( "Main Camera Enabled, 1 Key pressed." );
MainCamera.enabled = MainCamera.enabled;
FirstPerson.enabled = !FirstPerson.enabled;
ThirdPerson.enabled = !ThirdPerson.enabled;
}
// First Person Camera
if (Input.GetKey(KeyCode.Alpha2))
{
Debug.Log( "First Person Camera Enabled, 2 Key pressed." );
FirstPerson.enabled = FirstPerson.enabled;
MainCamera.enabled = !MainCamera.enabled;
ThirdPerson.enabled = !ThirdPerson.enabled;
}
// Third Person Camera
if (Input.GetKey(KeyCode.Alpha3))
{
Debug.Log( " Third Person Camera Enabled, 3 key pressed." );
ThirdPerson.enabled = ThirdPerson.enabled; // Enable the Third Person Camera
MainCamera.enabled = !MainCamera.enabled; // Disable the Main Camera
FirstPerson.enabled = !FirstPerson.enabled; // Disable the First Person Camera
}
}
}
I thought that maybe the regions of code I had these stored in were affecting them but that doesn’t seem to be the case. I’ve tried making these cameras change to simple false instead of !Camera.enabled (toggled) so see if there’s a difference and it just makes it so no full screen camera is active.
Thanks in advance. This is driving me nuts! If there’s an easier or ‘better’ way to do this I’d love to know.