質問編集履歴

4

コメント追加

2020/07/22 15:08

投稿

st1890
st1890

スコア3

test CHANGED
File without changes
test CHANGED
@@ -200,7 +200,7 @@
200
200
 
201
201
  //カードを非表示にする
202
202
 
203
- _card.SetInvisible();
203
+ _card.SetInvisible();       //126行目
204
204
 
205
205
  }
206
206
 

3

ソースコード修正

2020/07/22 15:08

投稿

st1890
st1890

スコア3

test CHANGED
File without changes
test CHANGED
@@ -180,6 +180,8 @@
180
180
 
181
181
  ```C#
182
182
 
183
+ //48行目で呼び出そうとしている処理
184
+
183
185
  //取得していないカードを背面にする
184
186
 
185
187
  public void HideCardList(List<int>containCardList){

2

48行目の位置追加 48行目で呼び出そうとしている処理のソースコード追加

2020/07/22 15:02

投稿

st1890
st1890

スコア3

test CHANGED
File without changes
test CHANGED
@@ -54,384 +54,170 @@
54
54
 
55
55
  using UnityEngine;
56
56
 
57
+ using System;
58
+
57
59
  using UnityEngine.UI;
58
60
 
59
- using DG.Tweening;
61
+
60
-
61
- using System;
62
+
62
-
63
-
64
-
65
- public class Card : MonoBehaviour
63
+ public class GameSceneManager : MonoBehaviour
66
64
 
67
65
  {
68
66
 
69
- // カードのID
67
+
70
-
71
- public int Id;
68
+
72
-
73
-
74
-
75
- //表示するカードの画像
76
-
77
- public Image CardImage;
78
-
79
-
80
-
81
- //透過処理用
82
-
83
- public CanvasGroup CanGroup;
69
+ public CanvasGroup CanvasGroup;
84
-
85
-
86
-
87
- //選択されているか判定
70
+
88
-
89
- private bool mIsSelected = false;
71
+
90
-
91
-
92
-
93
- //カード情報
72
+
94
-
95
- private CardData mData;
96
-
97
-
98
-
99
- private RectTransform mRt;
100
-
101
-
102
-
103
- //カードの設定
73
+ //一致したカードリスト
74
+
104
-
75
+ private List<int>mContainCardIdList = new List<int>();
76
+
77
+
78
+
79
+ //カード生成マネージャークラス
80
+
105
- public void Set(CardData data){
81
+ public CardCreateManager CardCreate;
82
+
83
+
84
+
85
+ public Card Card;
86
+
87
+
88
+
89
+ void Start (){
90
+
91
+
92
+
93
+ //一致したカードIDリストを初期化
94
+
95
+ this.mContainCardIdList.Clear();
96
+
97
+
98
+
99
+ //カードリストを生成する
100
+
101
+ this.CardCreate.CreateCard();
102
+
103
+ }
104
+
105
+ void Update()
106
+
107
+ {
106
108
 
107
109
 
108
110
 
111
+ //選択したカードが二枚以上になったら
112
+
113
+ if(GameStateController.Instance.SelectedCardIdList.Count >= 2){
114
+
115
+
116
+
117
+ //最初に取得したCardIDを取得する
118
+
119
+ int selectedId =
120
+
121
+ GameStateController.Instance.SelectedCardIdList[0];
122
+
123
+
124
+
125
+ //二枚目にあったカードと一緒だったら
126
+
127
+ if(selectedId ==
128
+
129
+ GameStateController.Instance.SelectedCardIdList[1]){
130
+
131
+
132
+
133
+ Debug.Log($"Contains!{selectedId}");
134
+
109
- //IDを設定する
135
+ //一致したカードIDを保存する
110
-
136
+
111
- this.Id = data.Id;
137
+ this.mContainCardIdList.Add(selectedId);
138
+
112
-
139
+ }
140
+
141
+
142
+
113
-
143
+ //カードの表示切り替えを行う
144
+
114
-
145
+ this.CardCreate.HideCardList(this.mContainCardIdList);  //48行目
146
+
147
+
148
+
149
+ //選択したカードリストを初期化する
150
+
151
+ GameStateController.Instance.SelectedCardIdList.Clear();
152
+
153
+ }
154
+
155
+
156
+
115
- //カード情報を設定
157
+        //カードの再配布処理
116
-
158
+
117
- this.mData = data;
159
+ if(this.mContainCardIdList.Count>= 3){
118
-
119
-
120
-
160
+
121
- //表示する画像設定する
161
+ //this.Card.OffInvisible();     //CanvasGroupのアルファ値を1にするメソッド用意してみた・・・失敗
122
-
123
- //初回は全て裏面表示とする
162
+
124
-
125
- this.CardImage.sprite = Resources.Load<Sprite>("Image/card_back");
163
+ //this.CanvasGroup.alpha = 1;    //直接アルファ値を指定してみた・・・失敗
126
-
127
-
128
-
129
- //選択判定フラグを初期化する
164
+
130
-
131
- this.mIsSelected = false;
165
+ mContainCardIdList.Clear();
132
-
133
-
134
-
135
- //アルファ値を1を設定する
166
+
136
-
137
- this.CanGroup.alpha = 1;
167
+ this.CardCreate.CreateCard();
138
-
139
-
140
-
141
- //座標情報を取得しておく
168
+
142
-
143
- this.mRt = this.GetComponent<RectTransform>();
169
+ Debug.Log("Count3 OK!");
170
+
144
-
171
+ }
145
-
146
172
 
147
173
  }
148
174
 
149
-
175
+ }
176
+
150
-
177
+ ```
178
+
179
+
180
+
181
+ ```C#
182
+
183
+ //取得していないカードを背面にする
184
+
185
+ public void HideCardList(List<int>containCardList){
186
+
187
+
188
+
189
+ foreach(var _card in this.CardList){
190
+
191
+
192
+
193
+ //既に獲得したカードのIDの場合、非表示にする
194
+
195
+ if(containCardList.Contains(_card.Id)){
196
+
197
+
198
+
199
+ //カードを非表示にする
200
+
151
- public void OnClick(){
201
+ _card.SetInvisible();
202
+
152
-
203
+ }
204
+
205
+
206
+
153
-
207
+ //獲得していないカードは裏面表示にする
208
+
154
-
209
+ else{
210
+
155
- //カードなっていた場合は無効
211
+ //カードを裏面する
156
-
212
+
157
- if(this.mIsSelected){
213
+ _card.SetHide();
158
-
214
+
159
- return;
215
+ }
160
216
 
161
217
  }
162
218
 
163
-
164
-
165
- Debug.Log("OnClick");
166
-
167
-
168
-
169
- //Dotweenで回転処理を行う
170
-
171
- this.mRt.DORotate(new Vector3(0f,90f,0f),0.2f)
172
-
173
-
174
-
175
- //回転が完了したら
176
-
177
- .OnComplete (() => {
178
-
179
- //選択判定フラグを有効にする
180
-
181
- this.mIsSelected = true;
182
-
183
-
184
-
185
- //カードを表面にする
186
-
187
- this.CardImage.sprite = this.mData.ImgSprite;
188
-
189
-
190
-
191
- //Y座標を元に戻す
192
-
193
- this.OnReturnRotate();
194
-
195
- });
196
-
197
-
198
-
199
219
  }
200
220
 
201
-
202
-
203
- public void OnReturnRotate(){
204
-
205
-
206
-
207
- this.mRt.DORotate(new Vector3(0f,0f,0f),0.2f)
208
-
209
- //回転が終わったら
210
-
211
- .OnComplete(() => {
212
-
213
- //選択したCardIdを保存しよう
214
-
215
- GameStateController.Instance.SelectedCardIdList.Add(this.mData.Id);
216
-
217
- });
218
-
219
- }
220
-
221
-
222
-
223
- //カードを背面表示にする
224
-
225
- public void SetHide(){
226
-
227
- //選択判定フラグを初期化する
228
-
229
- this.mIsSelected = false;
230
-
231
-
232
-
233
- //カードを背面表示にする
234
-
235
- this.CardImage.sprite = Resources.Load<Sprite>("Image/card_back");
236
-
237
-
238
-
239
- Debug.Log("SerHide OK");
240
-
241
- }
242
-
243
-
244
-
245
- //カードを非表示にする
246
-
247
- public void SetInvisible(){
248
-
249
- //選択済設定にする
250
-
251
- this.mIsSelected = true;
252
-
253
-
254
-
255
- //アルファ値を0に設定する
256
-
257
- this.CanGroup.alpha = 0; //エラー指摘箇所
258
-
259
-
260
-
261
- Debug.Log("SetInvisible OK");
262
-
263
- }
264
-
265
-
266
-
267
- // public void OffInvisible(){
268
-
269
- // this.CanGroup.alpha = 1;
270
-
271
- // }
272
-
273
- }
274
-
275
- public class CardData{
276
-
277
-
278
-
279
- //カードID
280
-
281
- public int Id{get; private set;}
282
-
283
-
284
-
285
- //画像
286
-
287
- public Sprite ImgSprite{get; private set;}
288
-
289
-
290
-
291
- public CardData (int _id,Sprite _sprite){
292
-
293
- this.Id = _id;
294
-
295
- this.ImgSprite = _sprite;
296
-
297
- }
298
-
299
- }
300
-
301
-
302
-
303
- ```
304
-
305
-
306
-
307
- ```ここに言語名を入力
308
-
309
- using System.Collections;
310
-
311
- using System.Collections.Generic;
312
-
313
- using UnityEngine;
314
-
315
- using System;
316
-
317
- using UnityEngine.UI;
318
-
319
-
320
-
321
- public class GameSceneManager : MonoBehaviour
322
-
323
- {
324
-
325
-
326
-
327
- public CanvasGroup CanvasGroup;
328
-
329
-
330
-
331
- //一致したカードリスト
332
-
333
- private List<int>mContainCardIdList = new List<int>();
334
-
335
-
336
-
337
- //カード生成マネージャークラス
338
-
339
- public CardCreateManager CardCreate;
340
-
341
-
342
-
343
- public Card Card;
344
-
345
-
346
-
347
- void Start (){
348
-
349
-
350
-
351
- //一致したカードIDリストを初期化
352
-
353
- this.mContainCardIdList.Clear();
354
-
355
-
356
-
357
- //カードリストを生成する
358
-
359
- this.CardCreate.CreateCard();
360
-
361
- }
362
-
363
- void Update()
364
-
365
- {
366
-
367
-
368
-
369
- //選択したカードが二枚以上になったら
370
-
371
- if(GameStateController.Instance.SelectedCardIdList.Count >= 2){
372
-
373
-
374
-
375
- //最初に取得したCardIDを取得する
376
-
377
- int selectedId =
378
-
379
- GameStateController.Instance.SelectedCardIdList[0];
380
-
381
-
382
-
383
- //二枚目にあったカードと一緒だったら
384
-
385
- if(selectedId ==
386
-
387
- GameStateController.Instance.SelectedCardIdList[1]){
388
-
389
-
390
-
391
- Debug.Log($"Contains!{selectedId}");
392
-
393
- //一致したカードIDを保存する
394
-
395
- this.mContainCardIdList.Add(selectedId);
396
-
397
- }
398
-
399
-
400
-
401
- //カードの表示切り替えを行う
402
-
403
- this.CardCreate.HideCardList(this.mContainCardIdList);
404
-
405
-
406
-
407
- //選択したカードリストを初期化する
408
-
409
- GameStateController.Instance.SelectedCardIdList.Clear();
410
-
411
- }
412
-
413
-
414
-
415
-        //カードの再配布処理
416
-
417
- if(this.mContainCardIdList.Count>= 3){
418
-
419
- //this.Card.OffInvisible();     //CanvasGroupのアルファ値を1にするメソッドを用意してみた・・・失敗
420
-
421
- //this.CanvasGroup.alpha = 1;    //直接アルファ値を指定してみた・・・失敗
422
-
423
- mContainCardIdList.Clear();
424
-
425
- this.CardCreate.CreateCard();
426
-
427
- Debug.Log("Count3 OK!");
428
-
429
- }
430
-
431
- }
432
-
433
- }
434
-
435
221
  ```
436
222
 
437
223
 

1

文法の修正

2020/07/22 15:01

投稿

st1890
st1890

スコア3

test CHANGED
File without changes
test CHANGED
@@ -12,6 +12,12 @@
12
12
 
13
13
 
14
14
 
15
+ 対処方法をご教示いただきたいです。
16
+
17
+ よろしくお願いします。
18
+
19
+
20
+
15
21
 
16
22
 
17
23
  ### 発生している問題・エラーメッセージ