I have a Scriptable Object in Unity that contains a lot a datas (integers and string)
I would like to save data in this scriptable :
https://i.sstatic.net/i4RQZ.jpg
I tried :
int cSlot = 0;
StatsPrincess saveP = Resources.Load<StatsPrincess>("ScriptablesObjects/GameSaves/Princess" + cSlot.ToString());
saveP.string1 = mystringtosave1;
saveP.int1 = myinttosave1;
This leave "saveP" to "null"
Resources.Load
only works if the asset is somewhere under a folder named "Resources" (and you can have multiple "Resources" folders).
If you want to load with the string "ScriptablesObjects/GameSaves/Princess"
then the path on the filesystem must be "Assets/Resources/ScriptablesObjects/GameSaves/Princess"
Here are the relevant details from the linked documentation:
Loads an asset stored at path in a folder called Resources.
Returns the asset at path if it can be found otherwise returns null. Only an object of type T will be returned. The path is relative to any folder named Resources inside the Assets folder of your project. More than one Resources folder can be used. For example, a project may have Resources folders called Assets/Resources and Assets/Guns/Resources. String names that include Assets and Resources are not needed. For example the loading of a GameObject at Assets/Guns/Resources/Shotgun.prefab does not use the folder names. Also, if Assets/Resources/Guns/Missiles/PlasmaGun.prefab exists it will be loaded using Prefabs/Missiles/PlasmaGun. If you have multiple Resources folders you cannot duplicate use of an asset name.
Another example of the Resources folder. In Resources there are two files, fancyA and fancyB. Resources also has Resources2 folder. This folder contains two files, fancyA2 and fancyB2. Finally, Resources2 has a folder called Resources3 with a single file also called fancyB. (This means the file in Resources3 has the same name as in Resources.) The files in Resources can be loaded as fancyA and fancyB with no need for the folder hierarchy Assets/Resources. Also, the files in Resources2 can be loaded. Loading these require the folder directory so an example load will be Resources2/fancyB2. Finally, loading from Resources3 will be Resources2/Resources3/fancyB.
Note: Extensions must be omitted. Note: All asset names and paths in Unity use forward slashes, paths using backslashes will not work.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With