前提・実現したいこと
現在、クリックで隠れているキャラクターが出てくるというゲームを製作しています。
クリック回数には制限があります。
なので
「フィールド内をクリックした回数を検知するコライダー」
「個々のオブジェクトのクリックを検知するコライダー」の二種類があります。
フィールドの中に個々のオブジェクトが存在するイメージです。
しかし、コライダーが重なっている関係上、オブジェクトをクリック(現時点ではマウスオーバーに)すると、回数を検知してくれなくなります。
コライダーを使わずにクリックを検知する方法はありますでしょうか。教えていただきたいです。
発生している問題・エラーメッセージ
オブジェクトの重なりにより、同時に反応しない。
該当のソースコード(フィールドのコード)
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/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/11/28 17:37
2020/11/29 04:59
2020/11/29 12:03