【发布时间】:2021-07-01 06:47:58
【问题描述】:
鉴于 Unity 中可编写脚本对象的这个基类
public abstract class MyBaseScriptableObject<T> : ScriptableObject { }
我可以继承它
[CreateAssetMenu(fileName = "Foo", menuName = "My files.../Bar")]
public sealed class Foo : MyBaseScriptableObject<string> { }
并在编辑器中创建Foo 类型的新脚本对象。
我想创建一个自定义编辑器窗口,其中包含所有从MyBaseScriptableObject<T> 继承的已创建“实例”的列表。我首先尝试在我的自定义编辑器窗口脚本中获取 MyBaseScriptableObject<string> 类型的所有实例
private void ListAllInstances()
{
string[] guids = AssetDatabase.FindAssets("t:"+ typeof(MyBaseScriptableObject<string>).Name);
Debug.Log($"Found: {guids.Length}");
}
我创建了一个 Foo 类型的 Scriptable Object。不幸的是,计数为 0,因此我的代码无法找到任何可编写脚本的对象。
有人知道这里缺少什么吗?
【问题讨论】: