質問編集履歴

7

文章の修正・画像追加

2021/08/15 14:59

投稿

Matsuri_
Matsuri_

スコア15

test CHANGED
File without changes
test CHANGED
@@ -42,6 +42,12 @@
42
42
 
43
43
  特にエラーメッセージも出ません。
44
44
 
45
+ ![イメージ説明](1b240750a4e0d334b5c758a01c721e7a.png)
46
+
47
+ 現在、ニューゲームするときは、Assetsファイルから右クリックで削除してから
48
+
49
+ 始める・・・というようなことをしています。
50
+
45
51
 
46
52
 
47
53
  ### 該当のソースコード

6

コードの追加

2021/08/15 14:59

投稿

Matsuri_
Matsuri_

スコア15

test CHANGED
File without changes
test CHANGED
@@ -50,6 +50,14 @@
50
50
 
51
51
  ```GameManager
52
52
 
53
+
54
+
55
+ static SaveDate SaveDatedayo = new SaveDate(); //保存場所
56
+
57
+ public int money;
58
+
59
+
60
+
53
61
  public void Awake()
54
62
 
55
63
  {

5

文章の修正

2021/08/15 12:44

投稿

Matsuri_
Matsuri_

スコア15

test CHANGED
File without changes
test CHANGED
@@ -36,7 +36,11 @@
36
36
 
37
37
  データを引き継がずに最初から始める、という処理をしたいです。。
38
38
 
39
- ですが、File.Deleteを行っても、消えていません。
39
+ ですが、下記のように、File.Deleteメソッドを行っても、
40
+
41
+ Unityフォルダ内にあるJsonファイルが消えていません。
42
+
43
+ 特にエラーメッセージも出ません。
40
44
 
41
45
 
42
46
 

4

内容修正

2021/08/15 12:11

投稿

Matsuri_
Matsuri_

スコア15

test CHANGED
File without changes
test CHANGED
@@ -8,7 +8,7 @@
8
8
 
9
9
  リスタートボタンを押したら、
10
10
 
11
- セーブデータ初期化→ニューゲーム
11
+ セーブデータ初期化(Jsonファイルの削除など)→ニューゲーム
12
12
 
13
13
  の実装をしたいです。
14
14
 
@@ -32,9 +32,11 @@
32
32
 
33
33
  セーブデータを初期化する方法がわからず、困っています。
34
34
 
35
- シーン再読み込みをた際書き込んだ変数のデータが
35
+ Jsonファイル削除(もくは初期値に書き換える)を行って、
36
36
 
37
+ データを引き継がずに最初から始める、という処理をしたいです。。
38
+
37
- そのまま残ってしまっていま
39
+ ですが、File.Deleteを行っても、消えていません
38
40
 
39
41
 
40
42
 
@@ -56,7 +58,7 @@
56
58
 
57
59
  //・・・中略・・・
58
60
 
59
- public void DoSave()
61
+ public void DoSave() //セーブ処理
60
62
 
61
63
  {
62
64
 
@@ -68,7 +70,7 @@
68
70
 
69
71
 
70
72
 
71
- public void DoLoad()
73
+ public void DoLoad() //ロード処理
72
74
 
73
75
  {
74
76
 
@@ -78,7 +80,7 @@
78
80
 
79
81
 
80
82
 
81
- public void Save(SaveDate SaveDatedayo)
83
+ public void Save(SaveDate SaveDatedayo)//セーブのためにJsonファイル書き出し
82
84
 
83
85
  {
84
86
 
@@ -104,7 +106,7 @@
104
106
 
105
107
 
106
108
 
107
- public SaveDate Load()
109
+ public SaveDate Load()//ロードのためにJsonファイル読み込み
108
110
 
109
111
  {
110
112
 
@@ -142,7 +144,7 @@
142
144
 
143
145
 
144
146
 
145
- public void PushRestartButton()
147
+ public void PushRestartButton()//リスタート(ニューゲーム)ボタン
146
148
 
147
149
  {
148
150
 

3

文章の修正

2021/08/15 11:58

投稿

Matsuri_
Matsuri_

スコア15

test CHANGED
File without changes
test CHANGED
@@ -178,6 +178,14 @@
178
178
 
179
179
 
180
180
 
181
+ 変数の手動での書き換えによる初期化(SaveDatedayo.money = 0など)
182
+
183
+ もやろうとしましたが、変数の数が多いので、
184
+
185
+ この方法では大変だなと思っています。
186
+
187
+
188
+
181
189
  伝わりにくいかもしれませんが、教えて頂ければ幸いです。
182
190
 
183
191
  よろしくお願いします。

2

タイトルを変更しました

2021/08/14 14:42

投稿

Matsuri_
Matsuri_

スコア15

test CHANGED
File without changes
test CHANGED
@@ -4,15 +4,25 @@
4
4
 
5
5
  Unityにてゲームを作っています。
6
6
 
7
- ゲームクリア後に再び最初からゲームを始める際
7
+ ゲームクリア後に再び最初からゲームを始める際、
8
8
 
9
+ リスタートボタンを押したら、
10
+
9
- セーブデータ初期化についての質問です。
11
+ セーブデータ初期化→ニューゲーム
12
+
13
+ の実装をしたいです。
10
14
 
11
15
 
12
16
 
13
- Jsonファイルをセーブデータとして使っています。
17
+ 現在、Jsonファイルをセーブデータとして使っています。
14
18
 
15
19
  書き出しと読み込みは、StreamReaderの機能を使っています。
20
+
21
+ GameManagerクラスのスクリプトにある変数の値を、
22
+
23
+ SaveDateクラスのスクリプトにそのままコピーして、
24
+
25
+ それをJsonファイルにしています。
16
26
 
17
27
 
18
28
 
@@ -20,7 +30,11 @@
20
30
 
21
31
 
22
32
 
23
- セーブデータを初期化する
33
+ セーブデータを初期化する方法がわからず、困っています。
34
+
35
+ シーンの再読み込みをした際に、書き込んだ変数のデータが
36
+
37
+ そのまま残ってしまっています。
24
38
 
25
39
 
26
40
 
@@ -28,54 +42,142 @@
28
42
 
29
43
 
30
44
 
31
- キャラクターに付与しているスクリプトは
45
+ ```GameManager
32
46
 
33
- void Update()
47
+ public void Awake()
34
48
 
35
49
  {
36
50
 
37
-
51
+ DoLoad();
38
52
 
53
+ money = SaveDatedayo.money;//お金
54
+
55
+ }
56
+
57
+ //・・・中略・・・
58
+
59
+ public void DoSave()
60
+
61
+ {
62
+
63
+ SaveDatedayo.money = money; //お金
64
+
65
+      Save(SaveDatedayo);
66
+
67
+ }
68
+
69
+
70
+
71
+ public void DoLoad()
72
+
73
+ {
74
+
39
- if (Input.GetKey(KeyCode.W))
75
+ SaveDatedayo = Load();
76
+
77
+ }
78
+
79
+
80
+
81
+ public void Save(SaveDate SaveDatedayo)
82
+
83
+ {
84
+
85
+ StreamWriter writer;
86
+
87
+
88
+
89
+ string jsonstr = JsonUtility.ToJson(SaveDatedayo);
90
+
91
+
92
+
93
+ writer = new StreamWriter(Application.dataPath + "/savedata.json", false);
94
+
95
+ writer.Write(jsonstr);
96
+
97
+ writer.Flush();
98
+
99
+ writer.Close();
100
+
101
+
102
+
103
+ }
104
+
105
+
106
+
107
+ public SaveDate Load()
108
+
109
+ {
110
+
111
+ if (File.Exists(Application.dataPath + "/savedata.json"))
40
112
 
41
113
  {
42
114
 
115
+ string datastr = "";
116
+
117
+ StreamReader reader;
118
+
119
+ reader = new StreamReader(Application.dataPath + "/savedata.json");
120
+
121
+ datastr = reader.ReadToEnd();
122
+
123
+ reader.Close();
124
+
125
+
126
+
43
- transform.Translate(0, 4.5f * Time.deltaTime, 0);
127
+ return JsonUtility.FromJson<SaveDate>(datastr);
44
128
 
45
129
  }
46
130
 
47
131
 
48
132
 
133
+ SaveDate SaveDatedayo2 = new SaveDate();
134
+
135
+
136
+
137
+ return SaveDatedayo2;
138
+
139
+
140
+
141
+ }
142
+
143
+
144
+
49
- if (Input.GetKey(KeyCode.S))
145
+ public void PushRestartButton()
146
+
147
+ {
148
+
149
+ if (File.Exists(Application.dataPath + "/savedata.json"))
50
150
 
51
151
  {
52
152
 
53
- transform.Translate(0, -4.5f * Time.deltaTime, 0);
153
+ File.Delete(Application.dataPath + "/savedata.json");
54
154
 
55
155
  }
56
156
 
57
- ・・・・
157
+ Scene ThisScene = SceneManager.GetActiveScene();
58
158
 
159
+ SceneManager.LoadScene(ThisScene.name);
59
160
 
161
+ }
60
162
 
61
- というような形です
163
+ ```
62
164
 
63
165
 
64
166
 
65
167
  ### 試したこと
66
168
 
169
+ 上記では、リスタートボタンにつける
67
170
 
171
+ PushRestartButtonメソッドの中で、
68
172
 
69
- 非アクティブにれば選択不可能になることは
173
+ 既存のJsonセーブデーファイル削除しようとしていま
70
174
 
71
- わかっていますが、
175
+ が、削除されません)
72
176
 
73
- その方法だとやりたいことが実現できません。
74
-
75
- (キャラを動かしながら、メニュー、コマンド選択がしたいです)
76
-
77
- 調べても出てこず、困っています。
177
+ セーブとロードはうまくいっています。
78
178
 
79
179
 
80
180
 
81
- 伝わりにくいかもしれませんが、よろしくお願します。
181
+ 伝わりにくいかもしれませんが、教えて頂ければ幸す。
182
+
183
+ よろしくお願いします。

1

タイトルを変更しました

2021/08/14 14:41

投稿

Matsuri_
Matsuri_

スコア15

test CHANGED
@@ -1 +1 @@
1
- Jsonセーブデータの削除とニューゲーム
1
+ Unity Jsonセーブデータの削除とニューゲーム
test CHANGED
File without changes