私のプロジェクトには、Assets\Spritesにある複数のスプライトがあり、C#スクリプトを使用してロードします。
私はこれをテストしました:
Sprite myFruit = Resources.Load <Sprite> ("Graphics_3");
ただし、myFruit
はまだnullです。
Resources.Load
は、Assets/Resources
でディレクトリを検索します。
Sprites
ディレクトリに配置する場合は、Resources
内に配置します(例:Assets/Resources/Sprites
)。
次に、次のようにロードします。
Sprite myFruit = Resources.Load <Sprite> ("Sprites/Graphics_3");
また、インスペクターで画像タイプをスプライトに設定していることを確認してください。
複数のスプライトをロードする場合、これを使用します:
Sprite[] myFruit = Resources.LoadAll <Sprite> ("Sprites/Graphics_3");
詳細については、 this を参照してください。
場所 awesome.png
in Assets/Resources/
(サブフォルダーを持つことができます)、および使用:
GetComponent<SpriteRenderer>().Sprite =
Resources.Load<Sprite>("awesome"); // No file extension.
http://docs.unity3d.com/ScriptReference/Resources.html
LoadAll that "Resourcesフォルダー内のパスにあるフォルダーまたはファイル内のすべてのアセットをロードします。"もあります
Sprite sp = Resources.LoadAll<Sprite> ("Sprites/AI-Avtar") [2] as Sprite;
Resources.Loadはディレクトリ「Assets/Resources」で検索しているため、実行する必要があります
_sprites = Resources.LoadAll<Sprite>(spritesPath);
または
_sprites = Resources.Load<Sprite>(spritesPath);
相対パスとしてspritesPathを使用します。フォルダ「Assets/Resources/Sprites」からすべてをロードする必要がある場合は、「Sprites」のみを記述する必要があります。
この後、次のことができます。
var Sprite = sprites[0];
または
var Sprite = _sprites.Where(a => a.name == "Sprite_Name_Needed").First();
アセットの完全なパスを入力する必要があります。この場合、パス「Sprites/Graphics_3」を使用してみてください。
Unityのスクリプトリファレンスでは、<Sprite>
Load
の直後。したがって、スプライトはResourcesディレクトリにありましたが、スプライトのロードに問題がありました。