2016-12-28 7 views
-3

Okay, stelle ich habe so zwei Kameras in meiner Hierarchie in Unity up:Wie kann ich einfach zwischen Kameras wechseln, wenn ich eine bestimmte Taste drücke?

enter image description here

Ich mag wissen würde, wenn im Spiel, wie kann ich zwischen den beiden Kameras umschalten, wenn eine bestimmte Taste gedrückt wird ? Ich bin mir bewusst, dass ich dafür vielleicht ein Skript machen müsste, nur nicht sicher, wie ich es machen würde.

+0

Dies kann helfen: http://answers.unity3d.com/questions/63221/how- to-set-main-camera.html – Keiwan

+1

Indem Sie einfach darauf warten, dass jemand das Skript für Sie schreibt, werden Sie nichts lernen. Du musst etwas haben. Zumindest eine einfache if-Anweisung zum Lesen von der Tastatur, dann eine andere einfache Codezeile, um die Hauptkamera zu ändern. Googeln Sie einfach "Einheit ändern Hauptkamera" – Programmer

Antwort

1

Sie können mehrere Kameras hinzufügen

using UnityEngine; 

using System.Collections; 

public class CameraController : MonoBehaviour { 

// Use this for initialization 
public Camera[] cameras; 
private int currentCameraIndex; 

// Use this for initialization 
void Start() { 
    currentCameraIndex = 0; 

    //Turn all cameras off, except the first default one 
    for (int i=1; i<cameras.Length; i++) 
    { 
     cameras[i].gameObject.SetActive(false); 
    } 

    //If any cameras were added to the controller, enable the first one 
    if (cameras.Length>0) 
    { 
     cameras [0].gameObject.SetActive (true); 
     Debug.Log ("Camera with name: " + cameras [0].GetComponent<Camera>().name + ", is now enabled"); 
    } 
} 

// Update is called once per frame 
void Update() { 
    //If the c button is pressed, switch to the next camera 
    //Set the camera at the current index to inactive, and set the next one in the array to active 
    //When we reach the end of the camera array, move back to the beginning or the array. 


} 

public void Change() 
{ 
     currentCameraIndex ++; 
     Debug.Log ("C button has been pressed. Switching to the next camera"); 
     if (currentCameraIndex < cameras.Length) 
     { 
      cameras[currentCameraIndex-1].gameObject.SetActive(false); 
      cameras[currentCameraIndex].gameObject.SetActive(true); 
      Debug.Log ("Camera with name: " + cameras [currentCameraIndex].GetComponent<Camera>().name + ", is now enabled"); 
     } 
     else 
     { 
      cameras[currentCameraIndex-1].gameObject.SetActive(false); 
      currentCameraIndex = 0; 
      cameras[currentCameraIndex].gameObject.SetActive(true); 
      Debug.Log ("Camera with name: " + cameras [currentCameraIndex].GetComponent<Camera>().name + ", is now enabled"); 
     } 
    } 

}

1

Extrem grundlegende Frage, sollten Sie zu einigen C# Tutorials gehen.

Auf jeden Fall wird dies tun. Setzen Sie dieses in der Update-Methode:

if (Input.GetKeyDown("space")) 
    { 
     //don't forget to set one as active either in the Start() method 
     //or deactivate 1 camera in the Editor before playing 
     if (Camera1.active == true) 
     { 
      Camera1.SetActive(false); 
      Camera2.SetActive(true); 
     } 

     else 
     { 
      Camera1.SetActive(true); 
      Camera2.SetActive(false); 
     } 
    } 
Verwandte Themen