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

回答編集履歴

8

追記

2016/09/22 10:52

投稿

IShix
IShix

スコア1729

answer CHANGED
@@ -7,7 +7,7 @@
7
7
  準備完了
8
8
  今後も使いそうでしたらわかりやすいようにResources/progressなどのフォルダを作ってその中に入れてもいいと思います。とりあえず今回は入れている程で進めます。
9
9
 
10
- ###使い方説明 実装
10
+ ###実装
11
11
  **・画像の配置場所を以下と仮定して進めます。**
12
12
  Resources/progress/p1.png
13
13
  **・Imageコンポーネントはインスペクタから設定すると仮定します**
@@ -54,4 +54,7 @@
54
54
  ```
55
55
 
56
56
  ###最後に 結構画像使うアプリならResouces.Loadおすすめです。
57
- インスペクタ上で画像を設定するということは起動直後にメモリ上に展開するということになります。画像自体が軽くてもメモリ上に展開すると数倍〜数十倍の重さになることもあるのでバカにできません。起動直後使用しない画像はスクリプトから読み出したい時以外でもResourcesフォルダの使用をお勧めします。アプリによって効果は様々なので一度画像のメモリ使用量をProfiler上のMemory->Texturesから確認してみてもいいかもしれません。
57
+ インスペクタ上で画像を設定するということは起動直後にメモリ上に展開するということになります。画像自体が軽くてもメモリ上に展開すると数倍〜数十倍の重さになることもあるのでバカにできません。起動直後使用しない画像はスクリプトから読み出したい時以外でもResourcesフォルダの使用をお勧めします。アプリによって効果は様々なので一度画像のメモリ使用量をProfiler上のMemory->Texturesから確認してみてもいいかもしれません。
58
+
59
+ ###Resoucesフォルダの注意点
60
+ Unityはビルド時に使用していないものをアプリ内に含まれないようにしますが、Resoucesフォルダ内は例外なので必要無いものを残さないようにご注意ください。

7

表現を修正

2016/09/22 10:52

投稿

IShix
IShix

スコア1729

answer CHANGED
@@ -53,5 +53,5 @@
53
53
  }
54
54
  ```
55
55
 
56
- ###最後に 結構画像使うアプリなら
57
- インスペクタ上で画像を設定するということは起動直後にメモリ上に展開するということになります。画像自体が軽くてもメモリ上に展開すると数倍〜数十倍の重さになることもあるのでバカにできません。起動直後使用しない画像はResourcesフォルダの使用をお勧めします。アプリによって効果は様々なので画像を結構使うなら一度画像のメモリ使用量をProfiler上のMemory->Texturesから確認してみてもいいかもしれません。
56
+ ###最後に 結構画像使うアプリならResouces.Loadおすすめです。
57
+ インスペクタ上で画像を設定するということは起動直後にメモリ上に展開するということになります。画像自体が軽くてもメモリ上に展開すると数倍〜数十倍の重さになることもあるのでバカにできません。起動直後使用しない画像はスクリプトから読み出したい時以外でもResourcesフォルダの使用をお勧めします。アプリによって効果は様々なので一度画像のメモリ使用量をProfiler上のMemory->Texturesから確認してみてもいいかもしれません。

6

ソースの修正

2016/09/22 08:07

投稿

IShix
IShix

スコア1729

answer CHANGED
@@ -21,22 +21,25 @@
21
21
  public class resourcesManager : MonoBehaviour {
22
22
 
23
23
  [SerializeField]
24
- private Image imgRender;
24
+ Image imgRender;
25
-
26
25
  string progressFolder = "progress/";
27
26
 
28
27
  void Awake (){
29
28
  //画像の読み出し
30
- imgRender.sprite = getSprite("p1");
29
+ imgRender.sprite = getSprite(progressFolder + "p1");
31
30
  //画像を破棄
32
31
  imgRender.sprite = null;
33
32
  //メモリ上から破棄 ※この画像に限らず使用していないものはすべてメモリ上から破棄されるメソッドです。
34
33
  Resources.UnloadUnusedAssets();
34
+
35
+ //もし画像がスライスされているものなら
36
+ Sprite[] sprites = getSprites(progressFolder + "p1");
37
+ imgRender.sprite = sprites[0];
35
38
  }
36
39
 
37
40
  public Sprite getSprite(string imgName)
38
41
  {
39
- return Resources.Load<Sprite>(progressFolder + imgName);
42
+ return Resources.Load<Sprite>(imgName);
40
43
  }
41
44
 
42
45
  public Sprite[] getSprites(string[] imgName)

5

表現を修正

2016/09/22 07:56

投稿

IShix
IShix

スコア1729

answer CHANGED
@@ -51,4 +51,4 @@
51
51
  ```
52
52
 
53
53
  ###最後に 結構画像使うアプリなら
54
- インスペクタ上で画像を設定するということは起動直後にメモリ上に展開するということになります。画像自体が軽くてもメモリ上に展開すると数倍〜数十倍の重さになることもあるのでバカにできません。起動直後使用しない画像はResourcesフォルダの使用をお勧めします。アプリによって効果は様々なので一度画像のメモリ使用量をProfiler上のMemory->Texturesから確認してみてください。
54
+ インスペクタ上で画像を設定するということは起動直後にメモリ上に展開するということになります。画像自体が軽くてもメモリ上に展開すると数倍〜数十倍の重さになることもあるのでバカにできません。起動直後使用しない画像はResourcesフォルダの使用をお勧めします。アプリによって効果は様々なので画像を結構使うなら一度画像のメモリ使用量をProfiler上のMemory->Texturesから確認してみていかもしれません

4

追記

2016/09/22 07:50

投稿

IShix
IShix

スコア1729

answer CHANGED
@@ -48,4 +48,7 @@
48
48
  return sprite;
49
49
  }
50
50
  }
51
- ```
51
+ ```
52
+
53
+ ###最後に 結構画像使うアプリなら
54
+ インスペクタ上で画像を設定するということは起動直後にメモリ上に展開するということになります。画像自体が軽くてもメモリ上に展開すると数倍〜数十倍の重さになることもあるのでバカにできません。起動直後使用しない画像はResourcesフォルダの使用をお勧めします。アプリによって効果は様々なので一度画像のメモリ使用量をProfiler上のMemory->Texturesから確認してみてください。

3

表現を修正

2016/09/22 07:49

投稿

IShix
IShix

スコア1729

answer CHANGED
@@ -30,7 +30,7 @@
30
30
  imgRender.sprite = getSprite("p1");
31
31
  //画像を破棄
32
32
  imgRender.sprite = null;
33
- //メモリ上から破棄 ※この画像に限らず使用していないものはすべてメモリ上から破棄されす。
33
+ //メモリ上から破棄 ※この画像に限らず使用していないものはすべてメモリ上から破棄されるメソッドです。
34
34
  Resources.UnloadUnusedAssets();
35
35
  }
36
36
 

2

誤字の修正

2016/09/22 07:32

投稿

IShix
IShix

スコア1729

answer CHANGED
@@ -1,5 +1,5 @@
1
1
  Resourcesフォルダを使うとスクリプトから読み出せますよ。
2
- 色々方法はありますが一般的な方法かと思います。ResourcesフォルダはUnity上で特殊な意味を持つフォルダでして、画像に限らずResourcesフォルダ内に入れたものをResources.Loadメソッドでスクリプトから読み出せるというものになります。詳しくはこちらを参照ください-> https://docs.unity3d.com/ja/current/ScriptReference/Resources.html
2
+ 色々方法はありますが一般的な方法かと思います。ResourcesフォルダはUnity上で特殊な意味を持つフォルダでして、画像に限らずResourcesフォルダ内に入れたものをResources.Loadメソッドでスクリプトから読み出せるというものになります。詳しくはこちらを参照ください-> https://docs.unity3d.com/ja/current/ScriptReference/Resources.html
3
3
 
4
4
  ###使い方説明 下準備
5
5
  1. Resourcesフォルダを適当な場所に制作

1

表現を修正

2016/09/22 07:30

投稿

IShix
IShix

スコア1729

answer CHANGED
@@ -1,13 +1,13 @@
1
1
  Resourcesフォルダを使うとスクリプトから読み出せますよ。
2
2
  色々方法はありますが一般的な方法かと思います。ResourcesフォルダはUnity上で特殊な意味を持つフォルダでして、画像に限らずResourcesフォルダ内に入れたものをResources.Loadメソッドでスクリプト上から読み出せるというものになります。詳しくはこちらを参照ください-> https://docs.unity3d.com/ja/current/ScriptReference/Resources.html
3
3
 
4
- ###使い方説明 (下準備)
4
+ ###使い方説明 下準備
5
5
  1. Resourcesフォルダを適当な場所に制作
6
6
  2. 読み出したい画像を制作したフォルダ内に配置 仮にp1.pngとしておきます。
7
7
  準備完了
8
8
  今後も使いそうでしたらわかりやすいようにResources/progressなどのフォルダを作ってその中に入れてもいいと思います。とりあえず今回は入れている程で進めます。
9
9
 
10
- ###実装
10
+ ###使い方説明 実装
11
11
  **・画像の配置場所を以下と仮定して進めます。**
12
12
  Resources/progress/p1.png
13
13
  **・Imageコンポーネントはインスペクタから設定すると仮定します**