在Unity中通过System.Type.GetType(“类”) 不能直接使用。
我们可以通过下面的方式来获得
public static System.Type GetTypeByName(string name)
{
foreach (Assembly assembly in System.AppDomain.CurrentDomain.GetAssemblies())
{
foreach (System.Type type in assembly.GetTypes())
{
if (type.Name == name)
return type;
}
}
return null;
}
使用的时候可以
var type1 = GetTypeByName("MB3_TextureBaker");
Object[] bakers1 = GameObject.FindObjectsOfType(type1, true);
for (int i = 0; i < bakers1.Length; i++)
{
var ob = bakers1[i];
EditorUtility.SetDirty(ob);
Debug.Log("Deleting TextureBaker -> " + bakers1[i].name);
GameObject.DestroyImmediate(bakers1[i]);
all++;
}
这里有个缺陷就是获取到第一个类型相同的就返回了,可以自行处理。