質問編集履歴
2
質問に会った内容に対し、自分なりのコードを付け加えました。そして、現状の問題点を明確に記載しました。
test
CHANGED
@@ -1 +1 @@
|
|
1
|
-
[Unity]
|
1
|
+
[Unity]PlayerPrefsで記録した現在の時刻(String型)とゲームの得点(Int型)を、シーンをまたいでCanvasのなかのテキストボックスに表示させたいです。
|
test
CHANGED
@@ -6,11 +6,83 @@
|
|
6
6
|
|
7
7
|
表示させたい場所は、Node(1)の中のTextで
|
8
8
|
|
9
|
-
「現在時刻: 2020年2月3日08:08
|
9
|
+
「現在時刻: 2020年2月3日08:08 得点: 29」といった具合にしたいです。
|
10
10
|
|
11
11
|
コードでは、FinishGameRecordメソッドを作りそれを、OnToHistroyButtonメソッドをアタッチした履歴ボタンの中に書いています。
|
12
12
|
|
13
|
+
|
14
|
+
|
15
|
+
回答してくださった方のおかげで、下の画像のようにPlayerPrefsでデータを保存してシーンを移動することができました。
|
16
|
+
|
17
|
+
![![イメージ説明](bb1648d112bd5ed4eaa5f9cfd3b43d23.png)
|
18
|
+
|
19
|
+
|
20
|
+
|
21
|
+
現在のスクリプトが以下になります。
|
22
|
+
|
23
|
+
```
|
24
|
+
|
25
|
+
public class ResultManager : MonoBehaviour
|
26
|
+
|
27
|
+
{
|
28
|
+
|
29
|
+
int resultGetScore_Num = SampleManager.getScore_Num();
|
30
|
+
|
31
|
+
string resultGetNowTime = SampleManager.getNowTime();
|
32
|
+
|
33
|
+
|
34
|
+
|
35
|
+
[SerializeField] GameObject nodePrefab;
|
36
|
+
|
37
|
+
[SerializeField] GameObject node;
|
38
|
+
|
39
|
+
[SerializeField] GameObject canvas;
|
40
|
+
|
41
|
+
|
42
|
+
|
43
|
+
public Text timeText;
|
44
|
+
|
45
|
+
|
46
|
+
|
47
|
+
// Start is called before the first frame update
|
48
|
+
|
13
|
-
|
49
|
+
void Start()
|
50
|
+
|
51
|
+
{
|
52
|
+
|
53
|
+
//node = Instantiate(nodePrefab);
|
54
|
+
|
55
|
+
//node.transform.SetParent(canvas.transform, false);
|
56
|
+
|
57
|
+
|
58
|
+
|
59
|
+
timeText.text = PlayerPrefs.GetString("NOW", "") + " 得点:"; // + PlayerPrefs.GetInt("SCORE","");
|
60
|
+
|
61
|
+
|
62
|
+
|
63
|
+
|
64
|
+
|
65
|
+
}
|
66
|
+
|
67
|
+
|
68
|
+
|
69
|
+
// Update is called once per frame
|
70
|
+
|
71
|
+
void Update()
|
72
|
+
|
73
|
+
{
|
74
|
+
|
75
|
+
|
76
|
+
|
77
|
+
}
|
78
|
+
|
79
|
+
}
|
80
|
+
|
81
|
+
```
|
82
|
+
|
83
|
+
|
84
|
+
|
85
|
+
```
|
14
86
|
|
15
87
|
using System.Collections;
|
16
88
|
|
@@ -50,7 +122,13 @@
|
|
50
122
|
|
51
123
|
|
52
124
|
|
125
|
+
//現在時刻代入用の変数
|
126
|
+
|
127
|
+
public static string nowTime;
|
128
|
+
|
129
|
+
|
130
|
+
|
53
|
-
DateTime
|
131
|
+
//private DateTime lastDateTime;
|
54
132
|
|
55
133
|
|
56
134
|
|
@@ -70,7 +148,7 @@
|
|
70
148
|
|
71
149
|
// スコアのロード
|
72
150
|
|
73
|
-
score_num = PlayerPrefs.GetInt("SCORE", 0);
|
151
|
+
//score_num = PlayerPrefs.GetInt("SCORE", 0);
|
74
152
|
|
75
153
|
|
76
154
|
|
@@ -80,7 +158,7 @@
|
|
80
158
|
|
81
159
|
// 削除時の処理
|
82
160
|
|
83
|
-
void OnDestroy()
|
161
|
+
/*void OnDestroy()
|
84
162
|
|
85
163
|
{
|
86
164
|
|
@@ -90,7 +168,7 @@
|
|
90
168
|
|
91
169
|
PlayerPrefs.Save();
|
92
170
|
|
93
|
-
}
|
171
|
+
}*/
|
94
172
|
|
95
173
|
|
96
174
|
|
@@ -174,6 +252,12 @@
|
|
174
252
|
|
175
253
|
leftTimeText.GetComponent<Text>().text = "残り時間:" + ((int)leftTime).ToString();
|
176
254
|
|
255
|
+
|
256
|
+
|
257
|
+
//現在時刻をStringで取得して代入
|
258
|
+
|
259
|
+
nowTime = System.DateTime.Now.ToString();
|
260
|
+
|
177
261
|
}
|
178
262
|
|
179
263
|
|
@@ -186,7 +270,7 @@
|
|
186
270
|
|
187
271
|
public GameObject scoreObject;
|
188
272
|
|
189
|
-
p
|
273
|
+
public static int score_num = 0;
|
190
274
|
|
191
275
|
|
192
276
|
|
@@ -196,9 +280,19 @@
|
|
196
280
|
|
197
281
|
{
|
198
282
|
|
283
|
+
|
284
|
+
|
199
|
-
System.DateTime now = System.DateTime.Now;
|
285
|
+
//System.DateTime now = System.DateTime.Now;
|
200
|
-
|
286
|
+
|
201
|
-
PlayerPrefs.SetString("key", now.ToBinary().ToString());
|
287
|
+
//PlayerPrefs.SetString("key", now.ToBinary().ToString());
|
288
|
+
|
289
|
+
//NOWというキーでnowTimeの文字列をセーブ
|
290
|
+
|
291
|
+
PlayerPrefs.SetString("NOW", nowTime);
|
292
|
+
|
293
|
+
//PlayerPrefs.SetString("Key_Time", lastDateTime.ToBinary().ToString());
|
294
|
+
|
295
|
+
//PlayerPrefs.Save();
|
202
296
|
|
203
297
|
|
204
298
|
|
@@ -206,7 +300,25 @@
|
|
206
300
|
|
207
301
|
PlayerPrefs.Save();
|
208
302
|
|
303
|
+
|
304
|
+
|
209
|
-
|
305
|
+
}
|
306
|
+
|
307
|
+
|
308
|
+
|
309
|
+
public static int getScore_Num()
|
310
|
+
|
311
|
+
{
|
312
|
+
|
313
|
+
return score_num;
|
314
|
+
|
315
|
+
}
|
316
|
+
|
317
|
+
public static string getNowTime()
|
318
|
+
|
319
|
+
{
|
320
|
+
|
321
|
+
return nowTime;
|
210
322
|
|
211
323
|
}
|
212
324
|
|
@@ -220,6 +332,12 @@
|
|
220
332
|
|
221
333
|
FinishGameRecord();
|
222
334
|
|
335
|
+
//Debug.Log(lastDateTime);
|
336
|
+
|
337
|
+
Debug.Log(score_num);
|
338
|
+
|
339
|
+
Debug.Log(nowTime);
|
340
|
+
|
223
341
|
}
|
224
342
|
|
225
343
|
|
@@ -284,10 +402,12 @@
|
|
284
402
|
|
285
403
|
```
|
286
404
|
|
287
|
-
|
288
|
-
|
289
|
-
|
290
|
-
|
291
|
-
|
292
|
-
|
293
|
-
|
405
|
+
今困っていることは、PlayerPrefsで記録した現在の時刻(String型)とゲーム得点(Int型)それぞれが型が異なるため、「timeText.text = PlayerPrefs.GetString("NOW", "") + " 得点:";」のコードのように、ここまでは、表示できますが、その続きの「 + PlayerPrefs.GetInt("SCORE","");」で保存したScoreを表示できないです。
|
406
|
+
|
407
|
+
|
408
|
+
|
409
|
+
今できていないことは、PlayerPrefsでSetIntで保存したInt型のScoreをString型と混じった状態で表示させることです。
|
410
|
+
|
411
|
+
|
412
|
+
|
413
|
+
どなたか、ご教示していただければ幸いです。
|
1
test
CHANGED
File without changes
|
test
CHANGED
@@ -4,9 +4,11 @@
|
|
4
4
|
|
5
5
|
![イメージ説明](928530dba3d52e86ffb094591b851c66.png)
|
6
6
|
|
7
|
-
表示させたい場所は、Node(1)の中のTextで
|
7
|
+
表示させたい場所は、Node(1)の中のTextで
|
8
|
+
|
8
|
-
|
9
|
+
「現在時刻: 2020年2月3日08:08 スコア: 29」といった具合にしたいです。
|
10
|
+
|
9
|
-
コードでは、FinishGameRecordメソッドを作りそれを、OnToHistroyButtonメソッドをアタッチした履歴ボ
|
11
|
+
コードでは、FinishGameRecordメソッドを作りそれを、OnToHistroyButtonメソッドをアタッチした履歴ボタンの中に書いています。
|
10
12
|
|
11
13
|
```ここに言語を入力
|
12
14
|
|
@@ -284,7 +286,7 @@
|
|
284
286
|
|
285
287
|
|
286
288
|
|
287
|
-
不十分な点があるかと思います。
|
289
|
+
説明が不十分な点があるかと思います。
|
288
290
|
|
289
291
|
どなたかアドバイスをよろしくお願いいたします。
|
290
292
|
|