2016-08-04 9 views
0

Ich habe eine Reihe von Png-Dateien, die ich mit C# importiere (in Unity 5.3.5) und setze sie auf das Sprite eines Bildes. Für einige dieser Dateien gibt Resources.Load jedoch bei der Ausführung dieses Codes "null".Resources.Load <Sprite> gibt NULL nur für bestimmte Dateien zurück

Resources.Load<Sprite>(@"Instruction_Files/1");

Als spezielles Beispiel, das erste Bild I (7.png) gibt mir die Sprite laden, wenn ich

Resources.Load<Sprite>(@"Instruction_Files/7");

Im Gegensatz nennen, ich werde das zweite Bild hochladen (10.png) gibt mir null, wenn ich rufe

Resources.Load<Sprite>(@"Instruction_Files/10");

1 umbenennen 0.png zu 7.png, etc. und umgekehrt ändert nichts (die ursprüngliche 10.png wird null sein und die ursprüngliche 7.png wird nicht sein).

7.png 10.png

Gibt es ein bestimmtes Format, die Sprite-Dateien sein müssen (zum Beispiel quadratisch, eine bestimmte Anzahl von kB) für Resources.Load zu arbeiten? Irgendeine mögliche Methode, um dieses Problem zu lösen? Vielen Dank.

UPDATE: Wichtig ist, dass, wenn ich alle Informationen in der 7.png.meta Datei kopieren und in der 10.png.meta Datei einfügen, dann 10 als Sprite registriert ist

+0

Können Sie die Größe Ihres Bildes ändern? –

+0

Können Sie ein Debugprotokoll einfügen? oder Fehlermeldungen? – Cabrra

+0

Es gibt keine Fehler/Debug-Nachrichten, die natürlich auftreten. Wenn ich mache 'Debug.Log (Resources.Load (@" Anweisung_Files/10 "))' Ich bekomme 'null' für 10.png oder Sprite (....) für 7.png. –

Antwort

2

Die Importeinstellungen müssen auf Sprite/UI wie here gesetzt werden (siehe Abschnitt Sprite/UI). Dies sind auch die Einstellungen, die in der Metadatei gespeichert sind.

Deshalb wird nicht geladen, wenn Sie die Datei in Unity von "10" in "7" umbenennen, da die Metadatei ebenfalls umbenannt wird und die Importdaten erhalten bleiben. Aber wenn Sie die Daten aus dem Meta kopieren, ändern Sie tatsächlich die Importeinstellungen.

+0

Perfekt. Vielen Dank. –