回答編集履歴

2

番号について修正

2021/01/09 07:04

投稿

kozuchi
kozuchi

スコア1193

test CHANGED
@@ -16,9 +16,9 @@
16
16
 
17
17
 
18
18
 
19
- 4.、5. のような処理が入るのでしたら、
19
+ 4.、5. のような処理が入るのでしたら、
20
20
 
21
- 3. までの処理を行う単体のツールを作って、
21
+ 3. までの処理を行う単体のツールを作って、
22
22
 
23
23
  その結果をファイルとして別途出力して、
24
24
 
@@ -28,7 +28,7 @@
28
28
 
29
29
 
30
30
 
31
- 2.の処理については、ファイルを切れ目なく読み込まず、
31
+ 2.の処理については、ファイルを切れ目なく読み込まず、
32
32
 
33
33
  適切な単位(適切なファイル数ないし行数)で短い sleep() などを入れて UI に処理を戻すようにすれば、
34
34
 

1

コメント指摘内容の反映

2021/01/09 07:04

投稿

kozuchi
kozuchi

スコア1193

test CHANGED
@@ -1,51 +1,49 @@
1
+ MujinSekai さんが説明くださった目的について
2
+
1
- 実働るサンプルプログラムる主義ですが、ちょっと実証に時間がかりそうなので、一般論を書きます。実測をしていないめ、また、私の知らない C#やUnity の実装上の理由で以下の内容が成り立たない場合もあるかもしれませんがご参考まで
3
+ 説明しやいように番号振らせていただきた。
2
4
 
3
5
 
4
6
 
5
- MujinSekai さんの最終的な目的は、ゲームとしプレーヤが投げ出してしまわないような操作性確保することだと思いますが、
7
+ 1. ゲーム開始時に全のファイル読み込む。
6
8
 
7
- ご質問拝見しところ問題は2点あると思ます
9
+ 2. その際、進捗のアニメーション入れたい。
10
+
11
+ 3. 全ファイルの数値から処理を行う。
12
+
13
+ 4. 一度全ファイルを解放。
14
+
15
+ 5. 以後、必要になったら必要なファイルを読み込む。
8
16
 
9
17
 
10
18
 
11
- 1.半分フリーズしたような状態になこと
19
+ 4.、5. のような処理が入のでしたら、
12
20
 
21
+ 3. までの処理を行う単体のツールを作って、
22
+
13
- 2.読み込みに時間がかかるこ
23
+ その結果をファイルして別途出力して、
24
+
25
+ ゲーム開始時にはそのファイルを読むようにすれば、
26
+
27
+ 起動時間をかなり短縮できるのではないでしょうか?
14
28
 
15
29
 
16
30
 
17
- に対する対策別のものにす。
31
+ 2.処理にいて、ファイルを切れ目く読み込ず、
32
+
33
+ 適切な単位(適切なファイル数ないし行数)で短い sleep() などを入れて UI に処理を戻すようにすれば、
34
+
35
+ (例えばそこで進捗のアニメーションを表示したり、キャンセルボタンなどを検知する処理を入れれば)
36
+
37
+ よいと思います。
38
+
39
+ Unity についてはあまりよくわからないのですが、おそらくマルチスレッド化などしていても、
40
+
41
+ ファイル読み込みを切れ目なく行ってしまうと、アニメーション処理などは止まってしまうと思われます。
18
42
 
19
43
 
20
44
 
21
- まず、1.問題ですが現在市販されているゲーム有名タでも
45
+ データバイナリ化については独自ファイル形式を作る方法とC#の シリアライズ化を使って、
22
46
 
23
- ロード時間かなり長もの(数分以上かかるもの)は存在しますが、フリーズ状態にはなりません
47
+ バイナリシリアライズする方法あると思います。
24
48
 
25
- フリーズ状態になるのは、ファイルを切れ目なく読み込んでいるためだと思われますので、
26
-
27
- 適切な単位(ファイルないし行)で短い sleep() などを入れて UI に処理を戻すようにすれば、
28
-
29
- (例えばそこで進捗のアニメーションを表示したり、キャンセルボタンなどを検知する処理を入れれば)
30
-
31
- フリーズ状態は見えなりま
49
+ どちらがより適切かは私もよわかりませんが
32
-
33
- この処置によって、ファイルの読み込みはわずかに遅くなると思われますが、
34
-
35
- フリーズ状態のとでは、ユーザーの印象は全く違うと思います。
36
-
37
-
38
-
39
- 次に 2.の読み込みに時間がかかることですが、
40
-
41
- csvで4GBということは、データの内容にもよりもよりますが、
42
-
43
- 読み込み時のカンマと数字のパーシングの時間も無視できない量になってると思います。
44
-
45
- ファイルをバイナリ化すれば、処理時間をかなり抑えられる可能性が高いのではないでしょうか。
46
-
47
- また、1ファイル10MB で 4GB ということは、数百個のファイルがあるということですので、
48
-
49
- ファイルのオープンクローズにかかる時間も無視できないと思います。
50
-
51
- 本当にそこまで細かく分ける必要があるのか検討された方がいいと思います。