Ejemplo n.º 1
0
    public void WrapCommon()
    {
        //最后导出的内容是: BaseType + (All-Non-Namespace + WhiteList) - BlackList
        //导出的时候同时注册
        //基本类型(int,bool,string等)
        //        OnlyAddClass("", "double");
        //        OnlyAddClass("", "float");
        //        OnlyAddClass("", "long");
        //        OnlyAddClass("", "ulong");
        //        OnlyAddClass("", "int");
        //        OnlyAddClass("", "uint");
        //        OnlyAddClass("", "short");
        //        OnlyAddClass("", "ushort");
        //        OnlyAddClass("", "byte");
        //        OnlyAddClass("", "sbyte");
        //        OnlyAddClass("", "char");
        //        OnlyAddClass("", "object");
        //        OnlyAddClass("", "bool");
        //        OnlyAddClass("", "string");

        //项目里没有Namespace的所有类, 减去黑名单
        if (m_wrapNonNameSpaceClass) {
            Type[] types = WrapReflectionTools.GetTypesByNamespace ("");
            if (types != null) {
                for (int i = 0; i < types.Length; i++) {
                    OnlyAddClass (types [i]);
                }
            }
        }

        for (int i = 0; i < _whiteList.Count; i++) {
            OnlyAddClass(_whiteList[i]);
        }

        ReloadWrap();
        UpdateWrapCore();
        //Add完毕ReloadDataBase,会编译代码
        AssetDatabase.Refresh();
    }
Ejemplo n.º 2
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();
    }