前提・実現したいこと
カメラを5つ設定しており、内訳がCamera,Camera2,Camera3,Camera4(この4つのカメラは1234キーで切り替え)subCameraです。subCameraは親をPlateに設定しており、PlateをクリックするとsubCameraが反応してズームするという仕組みにしています。
現状、クリックするとsubCameraが反応してズームするという所までは出来たのですが、別のカメラに切り替えた後にもう一度subCameraでズームしようとすると反応してくれません。どのようにすれば反応してくれるようになるでしょうか。長文失礼します
発生している問題・エラーメッセージ
二度目以降Pleteをクリックしても、subCameraのズームが反応しない
該当のソースコード
【カメラのズームを設定しているスクリプト】
using System.Collections; using System.Collections.Generic; using UnityEngine; public class CameraZoomSetter : MonoBehaviour { [SerializeField] Camera subCamera = default; private void Start() { subCamera.gameObject.SetActive(false); } //クリックすると、サブカメラに切り替える public void OnClick() { subCamera.gameObject.SetActive(true); } }
【1234キーでカメラ切り替えのスクリプト】
using System.Collections; using System.Collections.Generic; using UnityEngine; public class CameraChange : MonoBehaviour { //どこからでも関数を実行できるようにしたい public static CameraChange instance; private void Awake() { instance = this; } //カメラ1234を定義 public GameObject MainCamera; //メインカメラ格納用 public GameObject Camera2; //カメラ2格納用 public GameObject Camera3; //カメラ3格納用 public GameObject Camera4; //カメラ4格納用 //呼び出し時に実行される関数 void Start() { //カメラ1234を取得 MainCamera = GameObject.Find("MainCamera"); Camera2 = GameObject.Find("Camera2"); Camera3 = GameObject.Find("Camera3"); Camera4 = GameObject.Find("Camera4"); //カメラ2以降を非アクティブに Camera2.SetActive(false); Camera3.SetActive(false); Camera4.SetActive(false); } //単位時間ごとに実行される関数 void Update() { //キーボード上1キーが押されたら、カメラ1をアクティブに if (Input.GetKeyDown(KeyCode.Alpha1)) { //カメラ1をアクティブに設定 MainCamera.SetActive(true); //他のカメラを非アクティブに Camera2.SetActive(false); Camera3.SetActive(false); Camera4.SetActive(false); } //キーボード上2キーが押されたら、カメラ2をアクティブに if (Input.GetKeyDown(KeyCode.Alpha2)) { //カメラ2をアクティブに設定 Camera2.SetActive(true); //他のカメラを非アクティブに MainCamera.SetActive(false); Camera3.SetActive(false); Camera4.SetActive(false); } //キーボード上3キーが押されたら、カメラ3をアクティブに if (Input.GetKeyDown(KeyCode.Alpha3)) { //カメラ3をアクティブに設定 Camera3.SetActive(true); //他のカメラを非アクティブに MainCamera.SetActive(false); Camera2.SetActive(false); Camera4.SetActive(false); } //キーボード上4キーが押されたら、カメラ4をアクティブに if (Input.GetKeyDown(KeyCode.Alpha4)) { //カメラ4をアクティブに設定 Camera4.SetActive(true); //他のカメラを非アクティブに MainCamera.SetActive(false); Camera2.SetActive(false); Camera3.SetActive(false); } } }
試したこと
subCameraがクリックして反応した後に、trueのままになっているのが問題なのではと考えましたがそれ止まりです
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/12/14 12:51
2021/12/14 13:24
2021/12/18 08:15
2021/12/18 08:40