51544


お邪魔します。表題の通り、あるシーンでメインカメラとサブカメラを切り替え、ボタンによりまた戻ってくる動作をしたいのですが、切り替えはできても元に戻す動作ができません。  
理由が全く分からず困っております。アドバイス、どうぞよろしくお願いいたします。

問題のコードです。

[code]

    public void PushButtonBackArea()
    {
        subCamera.SetActive (false);
        mainCamera.SetActive (true);
    }
    
[/code]

・カメラはpublic変数でどちらもアタッチ済み。  
・当スクリプト内で、逆（サブカメラのSetActive(true);,メインカメラのSetActive(false);）は動作します。  
・また、コンポーネントのenabledでも試しましたが同様の結果です。

どうぞよろしくお願いいたします。


CC BY-SA 4.0
2018-11-18T12:58:49.243
50417
2018-12-27T04:54:51.950
2018-11-18T15:02:26.000
3060
31040
question
c# unity3d
メインカメラとサブカメラの切り替えができず困っています。


質問の意図はわかりますが、もう少し詳細があった方が確実な回答ができるので、スクリプトの全文を載せて欲しいです。  
今の内容からわかる程度の回答をします。

メインカメラとサブカメラが同じシーン上にあって、どちらかが非アクティブの状態で、カメラの切り替えをしたいということでよろしいでしょうか？

まず、自分の方でも試してみました。以下のようなヒエラルキーになっています。  
MainCameraとSubCameraにはCameraコンポーネント以外には特にアタッチしていません。  
[![ヒエラルキー](https://i.stack.imgur.com/QICWH.png)](https://i.stack.imgur.com/QICWH.png)

以下のスクリプトを任意のオブジェクトにアタッチしてシーン上に出し実行したところ問題なく動作しました。

[code]

    public class switcher : MonoBehaviour
    {
        public GameObject mainCam;
        public GameObject subCam;
    
        // Start is called before the first frame update
        void Start() {
            mainCam.SetActive(true);
            subCam.SetActive(false);
        }
    
        // Update is called once per frame
        void Update()
        {
            if (Input.GetKeyDown(KeyCode.G)) {
                mainCam.SetActive(!mainCam.activeSelf);
                subCam.SetActive(!subCam.activeSelf);
            }
        }
    }
    
[/code]

補足： Unity 2018.3.0f2における動作です。環境が違う場合はその旨を追記してください。


CC BY-SA 4.0
2018-12-27T04:54:51.950
51544
2018-12-27T04:54:51.950
31396
50417
answer