質問編集履歴

5

文言の修正

2017/09/22 01:50

投稿

sumikko6210
sumikko6210

スコア138

test CHANGED
File without changes
test CHANGED
@@ -1,12 +1,12 @@
1
1
  ###前提・実現したいこと
2
2
 
3
- Unity 2Dで現在パズルを作っており、ドラッグしているものを常に一番上のレイヤーにしたいです
3
+ Unity 2Dで現在ドラッグ&ドロップではめていくパズルを作っており、ドラッグしているものを常に一番上のレイヤーにしたいです
4
4
 
5
5
  ###発生している問題
6
6
 
7
7
 
8
8
 
9
- 現在、ドラッグしたパズルがドロップした下に入ってしまっている状況です。
9
+ 現在、ドラッグしたパズルがドロップしたパズルの下に入ってしまっている状況です。
10
10
 
11
11
 
12
12
 

4

コードの修正

2017/09/22 01:49

投稿

sumikko6210
sumikko6210

スコア138

test CHANGED
File without changes
test CHANGED
@@ -156,148 +156,132 @@
156
156
 
157
157
  transform.position = currentPosition;
158
158
 
159
-
159
+ }
160
-
160
+
161
+
162
+
161
- // レイヤー上にする
163
+ //オブジェクトドロップする
164
+
162
-
165
+ void OnMouseUp()
166
+
167
+ {
168
+
169
+ Vector3 currentScreenPoint = new Vector3(Input.mousePosition.x, Input.mousePosition.y, screenPoint.z);
170
+
171
+ Vector3 currentPosition = Camera.main.ScreenToWorldPoint(currentScreenPoint) + this.offset;
172
+
173
+
174
+
175
+ // 消えた列数リセット /////////////////////////////////////////////////
176
+
177
+ Count count = GameObject.Find("Text").GetComponent<Count>();
178
+
179
+ count.ResetCount();
180
+
181
+
182
+
163
- //Order in Layerを1
183
+ //currentPositionが範囲内であるか,Grid値があかどうかを判定
164
-
165
- sprite = GetComponent<SpriteRenderer>();
184
+
166
-
167
- if (sprite)
185
+ if (isValidGridPos())
168
186
 
169
187
  {
170
188
 
189
+ // It's valid. Update grid.
190
+
191
+ updateGrid();
192
+
193
+
194
+
195
+ transform.position = Grid.roundVec2(currentPosition);
196
+
197
+
198
+
199
+ //Order in Layerを-1にする
200
+
201
+ sprite = GetComponent<SpriteRenderer>();
202
+
203
+ if (sprite)
204
+
205
+ {
206
+
171
- sprite.sortingOrder = 1;
207
+ sprite.sortingOrder = -1;
208
+
209
+ }
210
+
211
+
212
+
213
+ //攻撃情報
214
+
215
+ //ピースの数(子オブジェクトの数)を判定
216
+
217
+ int ObjCount = this.transform.childCount;
218
+
219
+
220
+
221
+ BattleManager bm = GameObject.FindGameObjectWithTag("BattleManager").GetComponent<BattleManager>();
222
+
223
+ bm.SetAttackInfo(ObjCount, owner, 0, 0, 0, BattleManager.TYPE.SPRING, 0, 0, 0, 0, 0);
224
+
225
+ bm.BlockSet();
226
+
227
+
228
+
229
+ Grid.deleteFullRows();
230
+
231
+ Grid.deleteFullLines();
232
+
233
+
234
+
235
+ //消えた列数をテキストに反映
236
+
237
+ count.SetText();
238
+
239
+
240
+
241
+ //指定範囲内ではブロックの当たり判定を無くす
242
+
243
+ BoxCollider2D collider = GetComponent<BoxCollider2D>();
244
+
245
+ collider.enabled = false;
246
+
247
+
248
+
249
+ //次のブロックを呼び出す
250
+
251
+ FindObjectOfType<SpawnerManager>().requestSpawn(spawnerID);
252
+
253
+
254
+
255
+
172
256
 
173
257
  }
174
258
 
175
- }
176
-
177
-
178
-
179
- //オブジェクトをドロップする
180
-
181
- void OnMouseUp()
259
+ else
182
-
183
- {
184
-
185
- Vector3 currentScreenPoint = new Vector3(Input.mousePosition.x, Input.mousePosition.y, screenPoint.z);
186
-
187
- Vector3 currentPosition = Camera.main.ScreenToWorldPoint(currentScreenPoint) + this.offset;
188
-
189
-
190
-
191
- // 消えた列数リセット /////////////////////////////////////////////////
192
-
193
- Count count = GameObject.Find("Text").GetComponent<Count>();
194
-
195
- count.ResetCount();
196
-
197
-
198
-
199
- //currentPositionが範囲内であるか,Gridに値があるかどうかを判定
200
-
201
- if (isValidGridPos())
202
260
 
203
261
  {
204
262
 
205
- // It's valid. Update grid.
206
-
207
- updateGrid();
208
-
209
-
210
-
211
- transform.position = Grid.roundVec2(currentPosition);
212
-
213
-
214
-
215
- //Order in Layerを-1にす
263
+ //Spawnerオブジェクトの座標
216
-
264
+
217
- sprite = GetComponent<SpriteRenderer>();
265
+ foreach(GameObject go in GameObject.FindGameObjectsWithTag("Spawner"))
218
-
219
- if (sprite)
220
266
 
221
267
  {
222
268
 
269
+ if (spawnerID == go.GetComponent<Spawner>().SpawnerID)
270
+
271
+ {
272
+
223
- sprite.sortingOrder = -1;
273
+ transform.position = go.transform.position;
274
+
275
+ transform.localScale = new Vector3(0.3f, 0.3f, 1.0f);
276
+
277
+ }
224
278
 
225
279
  }
226
280
 
227
281
 
228
282
 
229
- //攻撃情報
230
-
231
- //ピースの数(子オブジェクトの数)を判定
232
-
233
- int ObjCount = this.transform.childCount;
234
-
235
-
236
-
237
- BattleManager bm = GameObject.FindGameObjectWithTag("BattleManager").GetComponent<BattleManager>();
238
-
239
- bm.SetAttackInfo(ObjCount, owner, 0, 0, 0, BattleManager.TYPE.SPRING, 0, 0, 0, 0, 0);
240
-
241
- bm.BlockSet();
242
-
243
-
244
-
245
- Grid.deleteFullRows();
246
-
247
- Grid.deleteFullLines();
248
-
249
-
250
-
251
- //消えた列数をテキストに反映
252
-
253
- count.SetText();
254
-
255
-
256
-
257
- //指定範囲内ではブロックの当たり判定を無くす
258
-
259
- BoxCollider2D collider = GetComponent<BoxCollider2D>();
260
-
261
- collider.enabled = false;
262
-
263
-
264
-
265
- //次のブロックを呼び出す
266
-
267
- FindObjectOfType<SpawnerManager>().requestSpawn(spawnerID);
268
-
269
-
270
-
271
-
272
-
273
283
  }
274
284
 
275
- else
276
-
277
- {
278
-
279
- //Spawnerオブジェクトの座標を取る
280
-
281
- foreach(GameObject go in GameObject.FindGameObjectsWithTag("Spawner"))
282
-
283
- {
284
-
285
- if (spawnerID == go.GetComponent<Spawner>().SpawnerID)
286
-
287
- {
288
-
289
- transform.position = go.transform.position;
290
-
291
- transform.localScale = new Vector3(0.3f, 0.3f, 1.0f);
292
-
293
- }
294
-
295
- }
296
-
297
-
298
-
299
- }
300
-
301
285
 
302
286
 
303
287
  }
@@ -360,4 +344,8 @@
360
344
 
361
345
  ```
362
346
 
347
+ スポーンしたばかりのブロックのOrder in Layerは0です
348
+
349
+
350
+
363
351
  ご回答よろしくお願いいたします。

3

コメントアウト

2017/09/22 01:48

投稿

sumikko6210
sumikko6210

スコア138

test CHANGED
File without changes
test CHANGED
@@ -214,7 +214,7 @@
214
214
 
215
215
  //Order in Layerを-1にする
216
216
 
217
- sprite = GetComponent<SpriteRenderer>();
217
+ sprite = GetComponent<SpriteRenderer>();
218
218
 
219
219
  if (sprite)
220
220
 
@@ -242,8 +242,6 @@
242
242
 
243
243
 
244
244
 
245
- //count.countUp();
246
-
247
245
  Grid.deleteFullRows();
248
246
 
249
247
  Grid.deleteFullLines();

2

コードの変更

2017/09/21 16:53

投稿

sumikko6210
sumikko6210

スコア138

test CHANGED
File without changes
test CHANGED
@@ -212,7 +212,7 @@
212
212
 
213
213
 
214
214
 
215
- //Order in Layerを0にする
215
+ //Order in Layerを-1にする
216
216
 
217
217
  sprite = GetComponent<SpriteRenderer>();
218
218
 
@@ -220,7 +220,7 @@
220
220
 
221
221
  {
222
222
 
223
- sprite.sortingOrder = 0;
223
+ sprite.sortingOrder = -1;
224
224
 
225
225
  }
226
226
 

1

コードの説明追加

2017/09/21 16:44

投稿

sumikko6210
sumikko6210

スコア138

test CHANGED
File without changes
test CHANGED
@@ -156,7 +156,11 @@
156
156
 
157
157
  transform.position = currentPosition;
158
158
 
159
+
160
+
159
-
161
+ // レイヤーを上にする
162
+
163
+ //Order in Layerを1にする
160
164
 
161
165
  sprite = GetComponent<SpriteRenderer>();
162
166
 
@@ -208,7 +212,9 @@
208
212
 
209
213
 
210
214
 
215
+ //Order in Layerを0にする
216
+
211
- sprite = GetComponent<SpriteRenderer>();
217
+ sprite = GetComponent<SpriteRenderer>();
212
218
 
213
219
  if (sprite)
214
220