質問編集履歴

4

2021/07/12 23:31

投稿

runba
runba

スコア1

test CHANGED
File without changes
test CHANGED
File without changes

3

2021/07/12 23:31

投稿

runba
runba

スコア1

test CHANGED
File without changes
test CHANGED
File without changes

2

2021/07/12 23:31

投稿

runba
runba

スコア1

test CHANGED
File without changes
test CHANGED
@@ -119,3 +119,21 @@
119
119
  それを一斉にnullにしたのちにResources.UnloadUnusedAssets();を
120
120
 
121
121
  呼び出すと解放される、という形なのでしょうか?
122
+
123
+
124
+
125
+ ### 追記2
126
+
127
+
128
+
129
+ ゲームオブジェクトを生成する前と生成したあとのメモリについてです。
130
+
131
+
132
+
133
+ Unityの起動時の、ほとんどTextureがメモリに入っていない場合、アニメーションによってTextureが読み込まれるたびに、そこで使用していたTextureがメモリに入ります。
134
+
135
+
136
+
137
+ その後Resources.UnloadUnusedAssets()
138
+
139
+ を使用してもそのメモリは開放されません。

1

Resources.UnloadUnusedAssets()など、メモリ開放のために試してみたことを追記しました。

2021/07/12 23:31

投稿

runba
runba

スコア1

test CHANGED
File without changes
test CHANGED
@@ -62,7 +62,7 @@
62
62
 
63
63
  {
64
64
 
65
- Resources.UnloadUnusedAssets();
65
+ 何もないところで
66
66
 
67
67
  }
68
68
 
@@ -71,3 +71,51 @@
71
71
 
72
72
 
73
73
  ```
74
+
75
+
76
+
77
+ ### 追記
78
+
79
+
80
+
81
+ image.texture = example.pngのような、スクリプトから代入するということはせず、
82
+
83
+ インスペクターのspriterendererなどに直接置くという形をとっております。
84
+
85
+ メモリの大半を占めているのがアニメーション画像であり、それは
86
+
87
+ animatorから呼び出されています。
88
+
89
+ その画像が、開いているシーン中ではどこからも参照されていないのにメモリから解放されません。
90
+
91
+
92
+
93
+ ###試したこと
94
+
95
+
96
+
97
+ 何も配置されていないシーンでResources.UnloadUnusedAssets();を呼び出す→解決されない
98
+
99
+
100
+
101
+
102
+
103
+
104
+
105
+ ### 推測
106
+
107
+
108
+
109
+ アニメーション画像のついたanimatorのついているオブジェクトをプレハブ化しており、
110
+
111
+ もしかしたらこれがあることによって「参照されている画像」判定が入っており、
112
+
113
+ Resources.UnloadUnusedAssets();を使用しても解放されないのかもしれません。
114
+
115
+
116
+
117
+ 本来であればアニメーションなどをスクリプトから作るべきであり、
118
+
119
+ それを一斉にnullにしたのちにResources.UnloadUnusedAssets();を
120
+
121
+ 呼び出すと解放される、という形なのでしょうか?