- Home /
The method Resources.Load does not accept strings after splitting.
There is a text file paths.txt in the Resources folder, which contains the paths to the prefabs. The paths look like this:
Test\Object001
Test\Object002
While they might look like a backslash too, it makes no difference:
Test/Object001
Test/Object002
The forward slash "\" is created automatically when the file is generated, but it shouldn't matter since I've tried both, changing it manually to "/".
Next, I want to load the prefabs using Resources.Load by reading lines from this text file. But newPrefab turns out to be null already when reading the first line, although the line is loaded correctly: Debug.Log (str) shows the correct value in the console.
TextAsset prefabsDatabase = (TextAsset)Resources.Load("paths", typeof(TextAsset));
foreach (string str in prefabsDatabase.text.Split('\n'))
{
Debug.Log(str);
StreamerBase newPrefab = Resources.Load<StreamerBase>(str);
}
The weird thing is that if I manually enter the prefab address directly into the method, it works:
StreamerBase newPrefab = Resources.Load<StreamerBase>("Test/Object001");
This will load Object001.prefab. Why does the line obtained from the file using foreach, displayed correctly in the console, do not work with Resources.Load, although if you copy the line from the console and enter it manually into the method, it will work correctly? I don't even have possible guesses. I tried different encoding for the file (ANSI and UTF-8), nothing changes.
If i leave only one line in the file:
Test\Object001
And remove Split('\n') from method, then the object will load normally.
TextAsset prefabsDatabase = (TextAsset)Resources.Load("paths", typeof(TextAsset));
StreamerBase newPrefab = Resources.Load<StreamerBase>(prefabsDatabase.text.ToString());
What's the matter? I do not understand! Could the problem be in using the Split method? Why doesn't the Resources.Load method accept strings?
Your answer
Follow this Question
Related Questions
Error for 1st exactly same name var String 1 Answer
Grab part of a string by looking for keyword 2 Answers
How to split a string using unity flash player? 0 Answers
Parse String and Serialise 1 Answer
String.Split With Backslash 2 Answers