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

回答編集履歴

1

補足

2021/05/12 02:29

投稿

hogefugapiyo
hogefugapiyo

スコア3303

answer CHANGED
@@ -1,3 +1,30 @@
1
+ 思いついたアプローチは2つです。
2
+ ・スポーンを1つにして、生成場所の候補を複数登録する。
3
+ ・スポーンを2つにして、さらにスポーンを管理するクラスを作る
4
+
5
+ #スポーンを1つにして、生成場所の候補を複数登録する。
6
+ スポーン位置さえわかれば、そのうちどっちか片方を使えば良いことになります
7
+
8
+ ```cs
9
+ public class Ball : MonoBehaviour
10
+ {
11
+ public GameObject obj;
12
+ public Transform[] spawnPos; // 生成する位置の候補をインスペクターからアタッチ
13
+
14
+ void Update()
15
+ {
16
+ if (Input.GetMouseButtonDown(0))
17
+ {
18
+ var _obj = Instantiate(obj);
19
+ var _seed = Random.Range(0, spawnPos.Length); // 配列の数で乱数を作る
20
+ _obj.transform.position = spawnPos[_seed].position; // 生成したオブジェクトの位置を変更する
21
+ _obj.GetComponent<Renderer>().material.color = Random.ColorHSV(0f, 1f, 1f, 1f, 0.5f, 1f); // 色をランダムに変更する(別にこのやり方じゃなくてもいいです)
22
+ }
23
+ }
24
+ }
25
+ ```
26
+
27
+ #スポーンを2つにして、さらにスポーンを管理するクラスを作る
1
28
  「どちらか一方」という目的を簡単に達成するためには
2
29
 
3
30
  ■ スポーンを管理するクラス