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

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

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

Q&A

1回答

3072閲覧

コライダーが重なった状態で個々のクリックを検知したい

mikichom_

総合スコア0

0グッド

0クリップ

投稿2020/11/28 11:02

前提・実現したいこと

現在、クリックで隠れているキャラクターが出てくるというゲームを製作しています。
クリック回数には制限があります。
なので
「フィールド内をクリックした回数を検知するコライダー」
「個々のオブジェクトのクリックを検知するコライダー」の二種類があります。
フィールドの中に個々のオブジェクトが存在するイメージです。
しかし、コライダーが重なっている関係上、オブジェクトをクリック(現時点ではマウスオーバーに)すると、回数を検知してくれなくなります。
コライダーを使わずにクリックを検知する方法はありますでしょうか。教えていただきたいです。
イメージ説明

発生している問題・エラーメッセージ

オブジェクトの重なりにより、同時に反応しない。

該当のソースコード(フィールドのコード)

C#

1public class CountDown : MonoBehaviour 2{ 3 4 public Text textField; 5 private int count; 6 // Start is called before the first frame update 7 void Start() 8 { 9 10 count = 5; 11 textField.text = count.ToString(); 12 } 13 14 public void OnMouseDown() 15 { 16 count--; 17 textField.text = count.ToString(); 18 } 19 20 private void Update() 21 { 22 if (count <= 0) 23 {//countが0以下の時に実行 24 FadeManager.Instance.LoadScene("GameOver", 1.2f); 25 } 26 } 27}

個々のオブジェクトのコード

c#

1public class MouseOver : MonoBehaviour 2{ 3 void OnMouseOver() 4 { 5 GetComponent<Renderer>().material.color = Color.white; 6 } 7 8 //オブジェクトからマウスカーソルが離れた際実行 9 void OnMouseExit() 10 { 11 GetComponent<Renderer>().material.color = new Color32(180, 180, 180, 255); 12 } 13}

試したこと

オブジェクトのZ軸を変えましたがやはりどちらか一方にしか反応しませんでした。

補足情報(FW/ツールのバージョンなど)

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

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

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

Colliderでも出来ますが、手っ取り早いのはuGUIのButtonまたはEventSystemを利用することだと思います。
Button - Unity マニュアル
Unity(3D・2D) EventSystemでクリックイベントの制御 - Qiita

・最背面に画面全体を覆うオブジェクトを配置→そのオブジェクトがクリックされたら、フィールドクリック回数を加算
・手前に個々の隠れ場所オブジェクトを配置→そのオブジェクトがクリックされたら、フィールドクリック回数を加算+キャラクターを発見した処理
とすれば想定通りの動きになると思います。

投稿2020/11/28 12:50

sakura_hana

総合スコア11427

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

mikichom_

2020/11/28 17:37

回答ありがとうございます。 ボタンやイベントシステムで個々に制御する方法は理解できました。 しかしカウントを同時に行うことはできたのですが、同時に制御をすることができませんでした。 クリックをすると個々にカウントしてしまうので、数字がうまく減ってくれません。 全体をクリック→1減る 5から4へ 木をクリック→1減る  5から4へ という風になってしまいます。 同時に制御する方法を教えていただきたいです。
sakura_hana

2020/11/29 04:59

「unity 変数 共有」で調べてみてください。
mikichom_

2020/11/29 12:03

ご丁寧にありがとうございます! 調べてみます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

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

アカウントをお持ちの方は

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問