teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

6

誤字

2021/12/02 08:38

投稿

kenken2245
kenken2245

スコア2

title CHANGED
File without changes
body CHANGED
@@ -1,6 +1,5 @@
1
1
  ### 前提として
2
- ゲーム中、costとtimeというスコアがどんどん増えて行きます。その値を保存したいと考えています。
3
- 現在、表示されているスコアを保存(JSON)で保存することはできます
2
+ 、表示されているスコアを保存(JSON)で保存することはできます
4
3
  ```ここに言語を入力
5
4
  public class GameDirector : MonoBehaviour
6
5
  {

5

コードの不備を訂正

2021/12/02 08:38

投稿

kenken2245
kenken2245

スコア2

title CHANGED
File without changes
body CHANGED
@@ -66,96 +66,4 @@
66
66
  }
67
67
  ```
68
68
  ### 問題、疑問
69
- このリストの配列をJSONで保存しよう思っていたのですが、保存するデータをまとめたクラス(PlayerData)にどう定義すればいいかわからなくなりました。
69
+ このリストの配列をJSONで保存しよう思っていたのですが、保存するデータをまとめたクラス(PlayerData)にどう定義すればいいかわからなくなりました。
70
- ### コード全体
71
- ```ここに言語を入力
72
- public class GameDirector : MonoBehaviour
73
- {
74
-
75
- [SerializeField] GameObject costText;
76
-  [SerializeField] GameObject timeText;
77
- [SerializeField] InputField inputArea;
78
-
79
- int cost = 0;
80
- int time = 0;
81
-
82
-
83
- [System.Serializable]
84
- public class PlayerData
85
- {
86
- public List<int> Costs { get; set; }
87
- public List<int> Times { get; set; }
88
- public string playerName;
89
- }
90
-
91
- PlayerData playerData = new PlayerData
92
- {
93
- Costs = new List<int>(),
94
- Times = new List<int>(),
95
- };
96
-
97
- public void ListSave()
98
- {
99
- playerData.Costs.Add(this.cost);
100
- playerData.Times.Add(this.time);
101
- }
102
-
103
-
104
- ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・
105
-
106
- //cubeprehabを作った時に呼び出す関数、コストを加える,this=myDataに変更
107
- public void GetCube1()
108
- {
109
- this.cost += 100; //YellowCubeを作ったら100プラス
110
- }
111
-
112
- public void GetCube2()
113
- {
114
- this.cost += 250; //BlueCubeを作ったら250プラス
115
- }
116
-
117
-
118
- //cubePrehab1を作った際の時間、と想定:単位不明
119
- public void GetTime1()
120
- {
121
- this.time += 3; //Yellowを作ったら3プラス
122
- }
123
- //cubePrehab2を作った際の時間、と想定:単位不明
124
- public void GetTime2()
125
- {
126
- this.time += 5; //Blueを作ったら5プラス
127
- }
128
-
129
- ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・
130
- public void SavePlayerData()//000
131
- {
132
- StreamWriter writer;
133
- var playerName = inputArea.text;
134
- playerData.playerName = playerName;
135
- string jsonstr = JsonUtility.ToJson(playerData);
136
-
137
- writer = new StreamWriter(Application.dataPath + "/save" + playerName + ".json", false);
138
- writer.Write(jsonstr);
139
- writer.Flush();
140
- writer.Close();
141
- }
142
-
143
-
144
-
145
- void Start()
146
- {
147
- this.costText = GameObject.Find("Cost");
148
- this.timeText = GameObject.Find("Time");
149
- }
150
-
151
-
152
- void Update()//myData=this
153
- {
154
- this.costText.GetComponent<Text>().text =
155
- "Total Cost : " + this.cost.ToString();
156
-
157
- this.timeText.GetComponent<Text>().text =
158
- "Total Time : " + this.time.ToString();
159
- }
160
- }
161
- ```

4

コードの追加

2021/12/02 08:37

投稿

kenken2245
kenken2245

スコア2

title CHANGED
File without changes
body CHANGED
@@ -66,4 +66,96 @@
66
66
  }
67
67
  ```
68
68
  ### 問題、疑問
69
- このリストの配列をJSONで保存しよう思っていたのですが、保存するデータをまとめたクラス(PlayerData)にどう定義すればいいかわからなくなりました。
69
+ このリストの配列をJSONで保存しよう思っていたのですが、保存するデータをまとめたクラス(PlayerData)にどう定義すればいいかわからなくなりました。
70
+ ### コード全体
71
+ ```ここに言語を入力
72
+ public class GameDirector : MonoBehaviour
73
+ {
74
+
75
+ [SerializeField] GameObject costText;
76
+  [SerializeField] GameObject timeText;
77
+ [SerializeField] InputField inputArea;
78
+
79
+ int cost = 0;
80
+ int time = 0;
81
+
82
+
83
+ [System.Serializable]
84
+ public class PlayerData
85
+ {
86
+ public List<int> Costs { get; set; }
87
+ public List<int> Times { get; set; }
88
+ public string playerName;
89
+ }
90
+
91
+ PlayerData playerData = new PlayerData
92
+ {
93
+ Costs = new List<int>(),
94
+ Times = new List<int>(),
95
+ };
96
+
97
+ public void ListSave()
98
+ {
99
+ playerData.Costs.Add(this.cost);
100
+ playerData.Times.Add(this.time);
101
+ }
102
+
103
+
104
+ ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・
105
+
106
+ //cubeprehabを作った時に呼び出す関数、コストを加える,this=myDataに変更
107
+ public void GetCube1()
108
+ {
109
+ this.cost += 100; //YellowCubeを作ったら100プラス
110
+ }
111
+
112
+ public void GetCube2()
113
+ {
114
+ this.cost += 250; //BlueCubeを作ったら250プラス
115
+ }
116
+
117
+
118
+ //cubePrehab1を作った際の時間、と想定:単位不明
119
+ public void GetTime1()
120
+ {
121
+ this.time += 3; //Yellowを作ったら3プラス
122
+ }
123
+ //cubePrehab2を作った際の時間、と想定:単位不明
124
+ public void GetTime2()
125
+ {
126
+ this.time += 5; //Blueを作ったら5プラス
127
+ }
128
+
129
+ ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・
130
+ public void SavePlayerData()//000
131
+ {
132
+ StreamWriter writer;
133
+ var playerName = inputArea.text;
134
+ playerData.playerName = playerName;
135
+ string jsonstr = JsonUtility.ToJson(playerData);
136
+
137
+ writer = new StreamWriter(Application.dataPath + "/save" + playerName + ".json", false);
138
+ writer.Write(jsonstr);
139
+ writer.Flush();
140
+ writer.Close();
141
+ }
142
+
143
+
144
+
145
+ void Start()
146
+ {
147
+ this.costText = GameObject.Find("Cost");
148
+ this.timeText = GameObject.Find("Time");
149
+ }
150
+
151
+
152
+ void Update()//myData=this
153
+ {
154
+ this.costText.GetComponent<Text>().text =
155
+ "Total Cost : " + this.cost.ToString();
156
+
157
+ this.timeText.GetComponent<Text>().text =
158
+ "Total Time : " + this.time.ToString();
159
+ }
160
+ }
161
+ ```

3

不足していたことを追加しました。

2021/11/16 05:29

投稿

kenken2245
kenken2245

スコア2

title CHANGED
File without changes
body CHANGED
@@ -49,9 +49,10 @@
49
49
  1:スコアが増える
50
50
  2:キープボタンを押すと現在のスコアを一旦保存する
51
51
 
52
- この1と2を繰り返し、最後にそのキープされた複数のデータをJSONに保存したいと考えています。
52
+ この1と2を繰り返し、最後にそのキープされた途中結果全てJSONに保存したいと考えています。
53
53
 
54
- そこで、costとtimeをlistにいれ、そのデータを保存させたいと考えております。
54
+ そこで、costとtimeの途中結果どんどんlistにいれ、そのデータを保存させたいと考えております。
55
+ このようなlistを用意して、キープボタンのOnclickにアタッチしようと考えています。
55
56
  ```ここに言語を入力
56
57
  public void ListSave()
57
58
  {
@@ -65,5 +66,4 @@
65
66
  }
66
67
  ```
67
68
  ### 問題、疑問
68
- このリストの配列をJSONで保存しよう思い、PlayerDataの中このlistを入れよしたのですがpublic int cost = 0;
69
+ このリストの配列をJSONで保存しよう思ってたのですが保存するデータをまとめたクラス(PlayerData定義すればいいかわからなくなりました
69
- public int time = 0;を同じクラスの中で定義しているためどうすればいいのでしょうか?

2

誤字

2021/11/16 00:37

投稿

kenken2245
kenken2245

スコア2

title CHANGED
File without changes
body CHANGED
@@ -66,4 +66,4 @@
66
66
  ```
67
67
  ### 問題、疑問
68
68
  このリストの配列をJSONで保存しよう思い、PlayerDataの中にこのlistを入れようとしたのですがpublic int cost = 0;
69
- public int time = 0;をクラスの中で定義しているためどうすればいいのでしょうか?
69
+ public int time = 0;を同じクラスの中で定義しているためどうすればいいのでしょうか?

1

具体的な問題点を追加しました。

2021/11/15 07:37

投稿

kenken2245
kenken2245

スコア2

title CHANGED
File without changes
body CHANGED
@@ -65,4 +65,5 @@
65
65
  }
66
66
  ```
67
67
  ### 問題、疑問
68
- このリストの配列をJSONで保存しようとしてみたのですが壁にあたりました。
68
+ このリストの配列をJSONで保存しよう思い、PlayerDataの中にこのlistを入れようとしたのですがpublic int cost = 0;
69
+ public int time = 0;をクラスの中で定義しているためどうすればいいのでしょうか?