unity get all scriptable objects of type code example
Example 1: unity find all scriptable objects of a type
public class CharacterList
{
List<Character> characterList = new List<Character>();
void PopulateList()
{
string[] assetNames = AssetDatabase.FindAssets("Your_Filter", new[] { "Assets/YourFolder" });
characterList.Clear();
foreach (string SOName in assetNames)
{
var SOpath = AssetDatabase.GUIDToAssetPath(SOName);
var character = AssetDatabase.LoadAssetAtPath<Character>(SOpath);
characterList.Add(character);
}
}
}
Example 2: unity find all scriptable objects of a type
public static T[] GetAllInstances<T>() where T : ScriptableObject
{
string[] guids = AssetDatabase.FindAssets("t:"+ typeof(T).Name);
T[] a = new T[guids.Length];
for(int i =0;i<guids.Length;i++)
{
string path = AssetDatabase.GUIDToAssetPath(guids[i]);
a[i] = AssetDatabase.LoadAssetAtPath<T>(path);
}
return a;
}