質問編集履歴

6

修正

2023/01/29 12:59

投稿

hanihani2000070
hanihani2000070

スコア0

test CHANGED
File without changes
test CHANGED
@@ -153,6 +153,11 @@
153
153
  ### エラー内容
154
154
  エラー CS0311: 型 'UnityEngine.GameObject[]' は、ジェネリック型またはメソッド 'Object.Instantiate<T>(T, Vector3、クォータニオン)」。 「UnityEngine.GameObject[]」から「UnityEngine.Object」への暗黙的な参照変換はありません。
155
155
 
156
+ ### 考察
157
+ Instantiateの第一引数へ直接配列を入れることができない。
158
+ その為、forまたはforeachで配列の中身を取り出す関数を作成して、その関数を、第一引数へ入れる。
159
+
160
+
156
161
  ### 試したこと
157
162
  Resourcesフォルダにしたり、forやforeachなど様々なことをしたのですがエラーが出続けて、消したり書いたりを繰り返しましたが上手くできずお手上げ状態です。(泣)
158
163
 

5

コメント修正

2023/01/29 12:45

投稿

hanihani2000070
hanihani2000070

スコア0

test CHANGED
File without changes
test CHANGED
@@ -112,7 +112,7 @@
112
112
 
113
113
  void Awake()
114
114
  {
115
- //ボールのオブジェクトを格納
115
+ //ボールが表示されていないなら表示する
116
116
  if(!activeTwoSizeBall)
117
117
  {
118
118
  GetTwoSizeBall();

4

コメント修正

2023/01/29 12:42

投稿

hanihani2000070
hanihani2000070

スコア0

test CHANGED
File without changes
test CHANGED
@@ -131,7 +131,7 @@
131
131
 
132
132
 
133
133
 
134
- //配列から取り出
134
+ //配列から取り出して表示
135
135
  void GetTwoSizeBall()
136
136
  {
137
137
  //生成場所をランダムで設定

3

コード追加

2023/01/29 12:34

投稿

hanihani2000070
hanihani2000070

スコア0

test CHANGED
File without changes
test CHANGED
@@ -95,22 +95,54 @@
95
95
  {
96
96
 
97
97
  //生成する中小ボールを格納
98
- public GameObject[] bigBalls;
98
+ public GameObject[] twoSizeBalls;
99
99
 
100
100
 
101
+ //ボールpos格納
102
+ private float ballPosX, ballPosY;
103
+
104
+ //生成したボールオブジェクト格納用
101
- // Start is called before the first frame update
105
+ private GameObject newTwoSizeBall;
106
+
107
+ //生成されたボール格納(中小)
108
+ GameObject activeTwoSizeBall;
109
+
110
+
111
+
112
+
113
+ void Awake()
114
+ {
115
+ //ボールのオブジェクトを格納
116
+ if(!activeTwoSizeBall)
117
+ {
118
+ GetTwoSizeBall();
119
+ }
120
+ }
121
+
102
122
  void Start()
103
123
  {
104
124
 
105
125
  }
106
126
 
107
- // Update is called once per frame
108
127
  void Update()
109
128
  {
110
129
 
111
130
  }
131
+
132
+
133
+
134
+ //配列から取り出す
135
+ void GetTwoSizeBall()
136
+ {
137
+ //生成場所をランダムで設定
138
+ ballPosX = Random.Range(-8.5f, 8.5f);
139
+ ballPosY = Random.Range(-4.5f, 4.5f);
140
+
141
+ newTwoSizeBall = Instantiate(twoSizeBalls,new Vector3(ballPosX, ballPosY, 0), Quaternion.identity);
142
+ //親オブジェクトを変える
143
+ newTwoSizeBall.transform.SetParent(transform);
144
+ }
112
145
  }
113
-
114
146
  ```
115
147
  大ボール配列
116
148
  ![イメージ説明](https://ddjkaamml8q8x.cloudfront.net/questions/2023-01-28/19ed8f80-bbba-4555-b5cc-9a3db8afad9d.png)
@@ -118,6 +150,8 @@
118
150
  中小ボール配列
119
151
  ![イメージ説明](https://ddjkaamml8q8x.cloudfront.net/questions/2023-01-28/955b0c51-b53d-44d5-8d27-767dc8f24368.png)
120
152
 
153
+ ### エラー内容
154
+ エラー CS0311: 型 'UnityEngine.GameObject[]' は、ジェネリック型またはメソッド 'Object.Instantiate<T>(T, Vector3、クォータニオン)」。 「UnityEngine.GameObject[]」から「UnityEngine.Object」への暗黙的な参照変換はありません。
121
155
 
122
156
  ### 試したこと
123
157
  Resourcesフォルダにしたり、forやforeachなど様々なことをしたのですがエラーが出続けて、消したり書いたりを繰り返しましたが上手くできずお手上げ状態です。(泣)

2

題名

2023/01/29 00:37

投稿

hanihani2000070
hanihani2000070

スコア0

test CHANGED
@@ -1 +1 @@
1
- 【Unity】配列から取り出して全て表示する方法
1
+ 【Unity】配列から取り出して、オブジェクトを表示したい
test CHANGED
File without changes

1

追加

2023/01/28 03:59

投稿

hanihani2000070
hanihani2000070

スコア0

test CHANGED
File without changes
test CHANGED
@@ -122,3 +122,9 @@
122
122
  ### 試したこと
123
123
  Resourcesフォルダにしたり、forやforeachなど様々なことをしたのですがエラーが出続けて、消したり書いたりを繰り返しましたが上手くできずお手上げ状態です。(泣)
124
124
 
125
+ ### その他プチ質問
126
+ その他プチ質問
127
+ forはループをするのに数値を利用。
128
+ foreachはループをするのに配列を利用(別のデータ型や初期化前の変数は使えない)。
129
+ という認識でいるのですが、今回は配列から取り出す為、forではなくforeachを使うということでしょうか。
130
+