質問: ### Unity にて複数のカメラをキーボードの1,2などを押すことによって切り替えるC# Unityを使ってVR動画を制作しています。視点が三か所あり、右目、左目のカメラがあるので合計六つのカメラを使用しています。 VR動画視聴中、VR HMDのコントローラーのボタンを押すことで視点が切り替わるようにしたいです。 ### 発生している問題・エラーメッセージ キーボードを押してカメラを切り替えるために以下のコードを使用していますが、再生してもカメラが切り替わりません。 ### 該当のソースコード ``` ソースコード ``` using System.Collections; using System.Collections.Generic; using UnityEngine; // public classの横の単語(ここではCRtest)はスクリプト名と一致しないとエラーになる public class CRtest : MonoBehaviour{ // ここでUnityのインスペクターパネルに枠を作る.Lならそれぞれ書き換える [SerializeField] private GameObject R0; [SerializeField] private GameObject R1; [SerializeField] private GameObject R2; //ここで作ったR0とかの箱がこの下のR0に対応している. void Update() { // 1キーを押したらR1 if (Input.GetKeyDown("1")) { R0.SetActive(!R0.activeSelf); R2.SetActive(!R2.activeSelf); R1.SetActive(!R1.activeSelf); } // 2キーを押したらR2 if (Input.GetKeyDown("2")) { R0.SetActive(!R0.activeSelf); R1.SetActive(!R1.activeSelf); R2.SetActive(!R2.activeSelf); } // 0キーを押したらR0 if (Input.GetKeyDown("0")) { R1.SetActive(!R1.activeSelf); R2.SetActive(!R2.activeSelf); R0.SetActive(!R0.activeSelf); } } } ### 試したこと 色々調べましたが、キーを押している間だけカメラが切り替わるといった内容しかヒットせず、苦戦しております。 また、昨年の時点ではこのコードを使ったスクリプトでカメラが切り替わっていましたが、Unity側のアップデートによってかは分からないですが動作しません。 ### 補足情報(FW/ツールのバージョンなど)
回答: どのキーを押してもactiveが逆転するだけでキーを分けている意味がない気がします こうじゃないでしょうか? ``` // 1キーを押したらR1 if (Input.GetKeyDown("1")) { R1.SetActive(true); R0.SetActive(false); R2.SetActive(false); } ``` ただ、カメラを切り替えたいのなら、メインカメラをその位置にワープさせるほうがいいと思います ``` if (Input.GetKeyDown("1")){ Camera.Main.transform.position = R1.transform.position; Camera.Main.transform.rotation = R1.transform.rotation; } ```