質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
87.20%
C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Unity

Unityは、ユニティテクノロジーが開発したゲームエンジンです。 主にモバイルやブラウザ向けのゲーム製作に利用されていましたが、3Dの重力付きゲームが簡単に作成できることから需要が増え、現在はマルチプラットフォームに対応しています。 言語はC言語/C++で書かれていますが、C#、JavaScript、Booで書かれたコードにも対応しています。

受付中

SubCameraのクリックが一度しか反応しない(trueとfalse)

muko04
muko04

総合スコア0

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Unity

Unityは、ユニティテクノロジーが開発したゲームエンジンです。 主にモバイルやブラウザ向けのゲーム製作に利用されていましたが、3Dの重力付きゲームが簡単に作成できることから需要が増え、現在はマルチプラットフォームに対応しています。 言語はC言語/C++で書かれていますが、C#、JavaScript、Booで書かれたコードにも対応しています。

1回答

0評価

0クリップ

273閲覧

投稿2021/12/10 15:10

前提・実現したいこと

カメラを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/ツールのバージョンなど)

ここにより詳細な情報を記載してください。

良い質問の評価を上げる

以下のような質問は評価を上げましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

気になる質問をクリップする

クリップした質問は、後からいつでもマイページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

  • プログラミングに関係のない質問
  • やってほしいことだけを記載した丸投げの質問
  • 問題・課題が含まれていない質問
  • 意図的に内容が抹消された質問
  • 過去に投稿した質問と同じ内容の質問
  • 広告と受け取られるような投稿

評価を下げると、トップページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

まだ回答がついていません

会員登録して回答してみよう

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
87.20%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問

同じタグがついた質問を見る

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Unity

Unityは、ユニティテクノロジーが開発したゲームエンジンです。 主にモバイルやブラウザ向けのゲーム製作に利用されていましたが、3Dの重力付きゲームが簡単に作成できることから需要が増え、現在はマルチプラットフォームに対応しています。 言語はC言語/C++で書かれていますが、C#、JavaScript、Booで書かれたコードにも対応しています。