質問編集履歴

3

タイトル修正

2021/11/08 09:06

投稿

L_KemonoFriends
L_KemonoFriends

スコア1

test CHANGED
@@ -1 +1 @@
1
- unityのコードの一部関数にしたい
1
+ プログラム短くしたい
test CHANGED
@@ -4,7 +4,7 @@
4
4
 
5
5
  現在、assetのeasysaveでセーブデータを保存しようとしてます。
6
6
 
7
- menunum==1の中を数百回ぐらい書く予定なので少でもプログラムを短くしたいです。
7
+ 質問用タグ1~2の中をプログラムを短くしたいです。
8
8
 
9
9
  str2とstr4を文字列の変数で実装する方法が存在する場合に教えて頂きたいです。
10
10
 
@@ -38,6 +38,8 @@
38
38
 
39
39
 
40
40
 
41
+ 方法が存在しない場合は存在しないと教えて欲しいです。
42
+
41
43
 
42
44
 
43
45
  ### 発生している問題・エラーメッセージ
@@ -46,7 +48,7 @@
46
48
 
47
49
  ```
48
50
 
49
- プログラムが冗長
51
+ なし
50
52
 
51
53
  ```
52
54
 
@@ -96,7 +98,7 @@
96
98
 
97
99
  //指定されたメニュー内のデータを全てセーブする
98
100
 
99
- //save_load=0 セーブ //save_load=1 ロード //save_load=2 初期化
101
+ //save_load=0 セーブ //save_load=1 ロード
100
102
 
101
103
  public void MenuAllSave(int menu_num , string sl_flag )
102
104
 
@@ -124,6 +126,8 @@
124
126
 
125
127
 
126
128
 
129
+
130
+
127
131
  //ーーーー質問用タグ1ーーーー
128
132
 
129
133
  GameObject obj = GameObject.Find(str1);
@@ -152,12 +156,14 @@
152
156
 
153
157
  {
154
158
 
155
- //コンパイルエラーが出るようにする
159
+ //エラーが出るようにする(throw等)
156
160
 
157
161
  }
158
162
 
159
163
  //ーーーー質問用タグ2ーーーー
160
164
 
165
+
166
+
161
167
  }
162
168
 
163
169
  else if(menu_num == 2)//メニュー2のデータを全部保存する
@@ -172,7 +178,7 @@
172
178
 
173
179
  {
174
180
 
175
- //コンパイルエラーが出るようにする
181
+ //エラーが出るようにする(throw等)
176
182
 
177
183
  }
178
184
 

2

例を載せてさらに質問を分かりやすくした。

2021/11/08 09:06

投稿

L_KemonoFriends
L_KemonoFriends

スコア1

test CHANGED
File without changes
test CHANGED
@@ -22,13 +22,15 @@
22
22
 
23
23
  の<InputBox>をstringの変数で定義したい
24
24
 
25
+ spt = obj.GetComponent<str2>();のように置き換えられると嬉しい。
26
+
25
27
 
26
28
 
27
29
  ES3.Save<string>(str0 , spt.ESSTR001 , str3);
28
30
 
29
31
  のESSTR001をstringの変数で定義したい
30
32
 
31
-
33
+ ES3.Save<string>(str0 , spt.str4 , str3);のように置き換えられると嬉しい。
32
34
 
33
35
 
34
36
 

1

何が知りたいのか分かりにくかったため質問を修正しました

2021/11/02 09:40

投稿

L_KemonoFriends
L_KemonoFriends

スコア1

test CHANGED
@@ -1 +1 @@
1
- unityのコードを短くしたい
1
+ unityのコードの一部関数にしたい
test CHANGED
@@ -6,11 +6,33 @@
6
6
 
7
7
  menunum==1の中身を数百回ぐらい書く予定なので少しでもプログラムを短くしたいです。
8
8
 
9
- str2とstr4を文字列で実装する方法が存在する場合に教えて頂きたいです。
9
+ str2とstr4を文字列の変数で実装する方法が存在する場合に教えて頂きたいです。
10
+
11
+ str2とstr4が実装できれば質問用タグ1~2の間を関数にできます。
10
12
 
11
13
 
12
14
 
15
+
16
+
13
- エラーメッセージ無くsaveloadはきます。
17
+ 具体的に下記の2点が行える嬉しいです。
18
+
19
+
20
+
21
+ spt = obj.GetComponent<InputBox>();
22
+
23
+ の<InputBox>をstringの変数で定義したい
24
+
25
+
26
+
27
+ ES3.Save<string>(str0 , spt.ESSTR001 , str3);
28
+
29
+ のESSTR001をstringの変数で定義したい
30
+
31
+
32
+
33
+
34
+
35
+
14
36
 
15
37
 
16
38
 
@@ -98,7 +120,9 @@
98
120
 
99
121
  const string str5 = "わーい"; //初Load時の値
100
122
 
123
+
124
+
101
-
125
+ //ーーーー質問用タグ1ーーーー
102
126
 
103
127
  GameObject obj = GameObject.Find(str1);
104
128
 
@@ -130,6 +154,8 @@
130
154
 
131
155
  }
132
156
 
157
+ //ーーーー質問用タグ2ーーーー
158
+
133
159
  }
134
160
 
135
161
  else if(menu_num == 2)//メニュー2のデータを全部保存する
@@ -152,126 +178,6 @@
152
178
 
153
179
  }
154
180
 
155
-
156
-
157
-
158
-
159
-
160
-
161
-
162
-
163
- ///以下使用例
164
-
165
-
166
-
167
- using System.Collections;
168
-
169
- using System.Collections.Generic;
170
-
171
- using UnityEngine;
172
-
173
- using UnityEngine.UI;//インプットボックスの使用で必要
174
-
175
-
176
-
177
- public class InputBox : MonoBehaviour
178
-
179
- {
180
-
181
- public Text writetext; //パスを描写したいオブジェクト(テキスト持ち限定)
182
-
183
- public InputField mytext; //入力欄のテキスト
184
-
185
-
186
-
187
- public string ESSTR001; //配列名を変えたらSaveScriptも更新すること
188
-
189
-
190
-
191
- // Start is called before the first frame update
192
-
193
- void Start()
194
-
195
- {
196
-
197
- writetext = writetext.GetComponent<Text> (); //反映先のテキストオブジェクトのTextコンポーネントを入れる
198
-
199
- mytext = mytext.GetComponent<InputField> (); //どの入力欄から情報を読み取るかを保存//今回は自分自身
200
-
201
- //writetext.text = mytext.text; //入力欄のtextを反映先のtxtにコピー
202
-
203
-
204
-
205
- MenuSave(1,"load");
206
-
207
- writetext.text = ESSTR001; //ロードした数値を反映先のtextに書き込み
208
-
209
- mytext.text = ESSTR001; //ロードした数値を入力欄のtextに書き込み
210
-
211
- }
212
-
213
-
214
-
215
- // Update is called once per frame
216
-
217
- void Update()
218
-
219
- {
220
-
221
-
222
-
223
- }
224
-
225
-
226
-
227
- //何か変更が加えられた時等に再生するプログラム
228
-
229
-
230
-
231
- //入力欄のtextを反映先のオブジェクトのtextにコピー
232
-
233
- public void InputText()
234
-
235
- {
236
-
237
- //パスを描写するテキストにinputFieldの内容を反映
238
-
239
- writetext.text = mytext.text;//入力欄のtextを反映先のtxtにコピー
240
-
241
-
242
-
243
-
244
-
245
- ESSTR001 = mytext.text;//入力欄のtextをeasysave用配列に保存
246
-
247
- MenuSave(1,"save");
248
-
249
- }
250
-
251
-
252
-
253
- /// <summary>save,load用の関数です。saveしたい変数がある場合に下へ追加する関数</summary>
254
-
255
- /// <param name="menu_num">セーブしたいメニューの番号</param>
256
-
257
- /// <param name="sl_flag">save、loadの文字列</param>
258
-
259
- /// <returns>無し</returns>
260
-
261
- private void MenuSave(int menu_num , string sl_flag)
262
-
263
- {
264
-
265
- GameObject obj = GameObject.Find("SAVEscript");
266
-
267
- obj.GetComponent<SaveScript>().MenuAllSave(menu_num,sl_flag);
268
-
269
- }
270
-
271
- }
272
-
273
-
274
-
275
181
  ```
276
182
 
277
183