Unity Editor监听脚本编译
需求
创建脚本后, 向gameObject添加该脚本组件
解决
思路: 利用Unity Editor的回调DidReloadScripts, 使用反射进行调用
创建监听脚本, 将其放入Editor文件夹(如果没有, 则创建Editor文件夹)
using UnityEditor.Callbacks;
using UnityEngine;
using System;
public class ListenScriptLoad {
[DidReloadScripts]
public static void Listen() {
string className = "Test";
System.Reflection.Assembly[] assemblies = AppDomain.CurrentDomain.GetAssemblies();
foreach (var assembly in assemblies) {
Debug.Log(assembly.FullName);
if (assembly.FullName.StartsWith("Assembly-CSharp,")) {
Type type = assembly.GetType(className);
GameObject go = new GameObject();
Debug.Log(type);
Component c = go.AddComponent(type);
Debug.Log(c);
//UnityEngine.Object.DestroyImmediate(go);
break;
}
}
}
}