teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

1

読みにくかったので

2020/09/10 19:14

投稿

Yamakagasi
Yamakagasi

スコア21

title CHANGED
File without changes
body CHANGED
@@ -1,4 +1,4 @@
1
- ●何がしたいか
1
+ ### **●何がしたいか**
2
2
  複数のオブジェクトが画面中にランダムに登場し、それらをクリックするとポイントが加算されるゲームを作ろうとしています
3
3
  オブジェクトがクリックされた時の反応として、ポイントの加算・オブジェクトが消える・2つに増える・色が変わる等があります
4
4
 
@@ -6,7 +6,7 @@
6
6
  eventtriggerのOnclickの方は何故かクリック範囲とコライダーの形が合わなかったので断念しました
7
7
  また、RayCastの方がなんとなく応用が広そうに見えました
8
8
 
9
- ●何を解決したいか?
9
+ ### **●何を解決したいか?**
10
10
  例えば、ObjectAにRayがHitした時に、ObjectAに付いているScriptAの関数Clicked()を実行する場合
11
11
  hit.collider.gameObject.GetComponent<ScriptA>().Clicked();
12
12
  となります
@@ -30,9 +30,10 @@
30
30
  このように条件分岐も必要になり関数も膨らみ管理がしんどくなってしまいます
31
31
 
32
32
  そこで、Rayがhitしたという判定だけを使って受け手側の関数を呼び出せないかと考えています
33
+
33
- 具体的には
34
+ ### **具体的には**
34
- ・RayはColliderにhitしているので、Rayを受ける側のオブジェクトでOnTriggerEnterか何か
35
+ **・RayはColliderにhitしているはずなので、Rayを受ける側のオブジェクトでOnTriggerEnterか何か**
35
- ・hit.collider.gameObject.イベントトリガーとかに何かする
36
+ **・hit.collider.gameObject.イベントトリガーとかに何かする**
36
37
  等で実装できればと思うのですが、それらしい情報にたどり着けません
37
38
 
38
39
 
@@ -48,8 +49,8 @@
48
49
  }
49
50
  }
50
51
  ```
51
- こんな感じのスクリプトを全てのオブジェクトに付ければ一応動くのですが、1000個2000個と出た場合にRayを飛ばすだけで負担になる事もあると聞き
52
+ こんな感じのスクリプトを全てのオブジェクトに付ければ一応動くのですが、1000個2000個と出た場合にRayを飛ばすだけで負担になる事もあるらしく、避けたいです
52
53
 
53
54
 
54
- 出来る限りRayを照射オブジェクトは1つ、全てのオブジェクトはRayを当てられた時に処理をするだけという状態にしたいと考えています
55
+ 出来る限り照射されRayは1つ、全てのオブジェクトはRayを当てられた時に処理をするだけという状態にしたいと考えています
55
56
  こういった内容はどのように実装するべきでしょうか?