2016-12-28 8 views
-3

わかりましたので、私は2台のカメラはユニティに私の階層に設定している:ゲーム内の、どのように私は両方のカメラを切り替えることができたとき、私が知りたいのです 特定のキーを押すと、カメラを簡単に切り替えることはできますか?

enter image description here

は、特定のキーが押されたとき?私はおそらくこれのためのスクリプトを作成する必要があるだろう、私はそれをやって行くことについて行くだろうか分からないことを認識しています。

+0

を追加することができます:Updateメソッドでこれを入れてhttp://answers.unity3d.com/questions/63221/how- to-set-main-camera.html – Keiwan

+1

誰かがあなたのためにスクリプトを書くのを待つだけで、何も学ぶことはありません。あなたは何かを持っている必要があります。少なくとも、メインのカメラを変更するためのコードの別の簡単な行をキーボードから読み取るための単純なif文。ちょうどGoogleの "統一チェンジメインカメラ" – Programmer

答えて

1

あなたはこれを助けることができる複数のカメラ

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

非常に基本的な質問ですが、いくつかのC#チュートリアルに行く必要があります。

いずれにせよ、これは可能です。

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); 
     } 
    } 
関連する問題