Ejemplo n.º 1
0
 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();
 }
Ejemplo n.º 2
0
    void OnlyAddClass(string fullname)
    {
        Type type = WrapReflectionTools.GetType(fullname);

        if(type == null) {
            Debug.LogWarning("No Such Type : " + fullname);
            return;
        }
        OnlyAddClass(type);
    }
Ejemplo n.º 3
0
 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();
 }
Ejemplo n.º 4
0
    //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();
    }