void UpdateClass(string[] classes) { for(int i = 0; i < classes.Length; i++) { Type type = WrapReflectionTools.GetType(classes[i]); OnlyRemoveClass(WrapReflectionTools.GetWrapFolderName(type), WrapReflectionTools.GetWrapFileName(type)); OnlyAddClass(type); } UpdateWrapCore();// 有可能WrapCore被改坏了,还是更新一下 AssetDatabase.Refresh(); }
void OnlyAddClass(string fullname) { Type type = WrapReflectionTools.GetType(fullname); if(type == null) { Debug.LogWarning("No Such Type : " + fullname); return; } OnlyAddClass(type); }
void RemoveClass(string[] classes) { for(int i = 0; i < classes.Length; i++) { Type type = WrapReflectionTools.GetType(classes[i]); OnlyRemoveClass(WrapReflectionTools.GetWrapFolderName(type), WrapReflectionTools.GetWrapFileName(type)); } ReloadWrap(); UpdateWrapCore(); //Remove完毕ReloadDataBase,会编译代码 AssetDatabase.Refresh(); }
//Wrap一个自己输入的内容,需要判断是一个类还是一个命名空间 public void WrapCustom(string text) { Type type = WrapReflectionTools.GetType(text); //输入的是一个类 if(type != null) { string assemblyName = WrapReflectionTools.GetWrapFolderName(type); string className = WrapReflectionTools.GetWrapFileName(type); WrapClass wc = GetWrapClass(assemblyName); if(wc == null) { wc = new WrapClass(assemblyName); AddClass(type); } else { if(!wc.m_classes.Contains(className)) AddClass(type); else UpdateClass(new string[]{text}); } } //输入的是一个命名空间 else{ Type[] types = WrapReflectionTools.GetTypesByNamespace(text); if(types != null) { for(int i = 0; i < types.Length; i++) { // Debug.Log(types[i].ToString()); AddClass(types[i]); } } } ReloadWrap(); UpdateWrapCore(); //Add完毕ReloadDataBase,会编译代码 AssetDatabase.Refresh(); }