Esempio n. 1
0
    public string ShaderJsonPos(SenceHierarchyInfo s, string shaderName)
    {
        switch (shaderName)
        {
        //shadersVector4Pos 保存有所有shader字符窜的位置;
        //            case "Standard":
//            case "@Moblie_WJM_Mirror":
        case "@Moblie_WJM_Alpha":
            return(Vector4ToString(s.shadersVector4Pos[0], 0));

        case "@Moblie_WJM_Base":
            return(Vector4ToString(s.shadersVector4Pos[1], 1));

        case "@Moblie_WJM_CubeMap":
            return(Vector4ToString(s.shadersVector4Pos[2], 2));

        case "@Moblie_WJM_Glass_Middle":
            return(Vector4ToString(s.shadersVector4Pos[3], 3));

        case "@Moblie_WJM_Mirror":
            return(Vector4ToString(s.shadersVector4Pos[4], 4));

        case "@Moblie_WJM_Sky":
            return(Vector4ToString(s.shadersVector4Pos[5], 5));

        case "@Moblie_WJM_SpriteTree":
            return(Vector4ToString(s.shadersVector4Pos[6], 6));

        case "@Moblie_WJM_TreeLeaf":
            return(Vector4ToString(s.shadersVector4Pos[7], 7));

        case "@Moblie_WJM_Water":
            return(Vector4ToString(s.shadersVector4Pos[8], 8));

        case "@Moblie_WJM_WFaceCamera":
            return(Vector4ToString(s.shadersVector4Pos[9], 9));

        default:
            Debug.LogError(shaderName + "材质不支持");
            return("[]");
        }
    }
Esempio n. 2
0
    void CreateSenceInteractiveJsonFile(SenceHierarchyInfo senceH)
    {
        if (senceH.senceInteractiveInfo != null)
        {
            senceH.senceInteractiveInfo.RecordInfo();
            string senceInteractiveJson = senceH.senceInteractiveInfo.senceInteractiveInfoJson;

            if (useCompress)
            {
                System.IO.File.WriteAllBytes(hierarchyFolderFinal + "/senceInteractive.json", CLZF2.Compress(System.Text.Encoding.Default.GetBytes(senceInteractiveJson)));
            }
            else
            {
                System.IO.File.WriteAllText(hierarchyFolderFinal + "/senceInteractive.json", senceInteractiveJson);
            }
        }
        else
        {
            string log = senceH.gameObject.name + "中的senceInteractiveInfo未设置,请检查是否已设置!";
            Debug.Log(log);
            Debug.LogWarning(log);
            Debug.LogError(log);
        }
    }
Esempio n. 3
0
    void CreateBuuferGeometryBinFile(SenceHierarchyInfo threeJsSenceHierarchy)
    {
        List <byte> binFileBuffer = new List <byte>();

//      GenOneGameObjectBinBuffer(threeJsSenceHierarchy.allGameObject3DMesh[1], binFileBuffer.Count);

        for (int i = 0; i < threeJsSenceHierarchy.allGameObject3DMesh.Count; i++)
        {
//          WaitForSeconds(0.2f);
            binFileBuffer.AddRange
            (
                GenOneGameObjectBinBuffer(threeJsSenceHierarchy.allGameObject3DMesh[i], binFileBuffer.Count)
            );
        }

        Debug.Log("BinFileBuffer Length: " + binFileBuffer.Count);
        string savePath = geometryFolderFinal + "/" + "123.json";

        threeJsSenceHierarchy.lastAllGameObject3DMesh = threeJsSenceHierarchy.allGameObject3DMesh;

        if (useCompress)
        {
            System.IO.File.WriteAllBytes(savePath, CLZF2.Compress(binFileBuffer.ToArray()));
//          byte[] tempByte = binFileBuffer.ToArray();
//          System.IO.File.WriteAllBytes(savePath, LZ4.LZ4Codec.EncodeHC(tempByte, 0, tempByte.Length));
        }
        else
        {
            System.IO.File.WriteAllBytes(savePath, binFileBuffer.ToArray());
        }

        string[] shadersGroup = new string[] { "@Moblie_WJM_Alpha", "@Moblie_WJM_Base", "@Moblie_WJM_CubeMap", "@Moblie_WJM_Glass_Middle", "@Moblie_WJM_Mirror", "@Moblie_WJM_Sky", "@Moblie_WJM_SpriteTree", "@Moblie_WJM_TreeLeaf", "@Moblie_WJM_Water", "@Moblie_WJM_WFaceCamera" };

        List <Vector4> shadersVec4Pos = new List <Vector4>();

        int allCount = 0;
        int start    = 0;
        int count    = 0;
        int start2   = 0;
        int count2   = 0;

        string      shaderTxtRootPath = Application.dataPath + "/WJMFramework/AppAndThreeJSExport2017/Editor/";
        List <byte> shaderBytes       = new List <byte>();

        for (int i = 0; i < shadersGroup.Length; i++)
        {
            byte[] vertexShaderStr = System.IO.File.ReadAllBytes(shaderTxtRootPath + "vertex" + shadersGroup[i] + ".txt");
            shaderBytes.AddRange(vertexShaderStr);
            start     = allCount;
            count     = vertexShaderStr.Length;
            allCount += count;

            byte[] fragmentShaderStr = System.IO.File.ReadAllBytes(shaderTxtRootPath + "fragment" + shadersGroup[i] + ".txt");
            shaderBytes.AddRange(fragmentShaderStr);
            start2    = allCount;
            count2    = fragmentShaderStr.Length;
            allCount += count2;
            shadersVec4Pos.Add(new Vector4(start, count, start2, count2));
//            Debug.Log(new Vector4(start, count, start2, count2));
        }
        shaderBytes.Add(new byte());
        shaderBytes.Add(new byte());

        threeJsSenceHierarchy.shadersVector4Pos = shadersVec4Pos.ToArray();
//        Debug.Log(shaderBytes.Count);

        string savePath2 = geometryFolderFinal + "/" + "456.json";

        if (useCompress)
        {
            System.IO.File.WriteAllBytes(savePath2, CLZF2.Compress(shaderBytes.ToArray()));
        }
        else
        {
            System.IO.File.WriteAllBytes(savePath2, shaderBytes.ToArray());
        }
    }
Esempio n. 4
0
    void CreateSenceHierarchyJsonFile(SenceHierarchyInfo senceH)
    {
        string senceHierarchy = "{\"v\":\"2017_0_0\",\"compress\":\"LZF\",";

        senceHierarchy += "\"SceneBuildTime\":\"" + DateTime.Now.ToString("d") + "\",";

        senceHierarchy += "\"envCubeMap\":\"" + senceH.envCubeMap.name + "\",";

        senceHierarchy += "\"SenceHierarchy\":[";

        for (int i = 0; i < senceH.allTempObject3DInfo.Count; i++)
        {
            senceHierarchy += "{" + senceH.allTempObject3DInfo[i].nameJson + ",";
            senceHierarchy += senceH.allTempObject3DInfo[i].idJson + ",";
            senceHierarchy += senceH.allTempObject3DInfo[i].layerJson + ",";
            senceHierarchy += senceH.allTempObject3DInfo[i].positionJson + ",";
            senceHierarchy += senceH.allTempObject3DInfo[i].rotationJson + ",";
            senceHierarchy += senceH.allTempObject3DInfo[i].scaleJson + ",";


            if (senceH.allTempObject3DInfo[i].mesh != null)
            {
                senceHierarchy += senceH.allTempObject3DInfo[i].lightmapOffsetJson + ",";
                senceHierarchy += senceH.allTempObject3DInfo[i].meshJson + ",";
                senceHierarchy += senceH.allTempObject3DInfo[i].renderOrderJson + ",";
                senceHierarchy += senceH.allTempObject3DInfo[i].instanceChildPosition + ",";
                senceHierarchy += senceH.allTempObject3DInfo[i].materialsJson + ",";
                senceHierarchy += senceH.allTempObject3DInfo[i].parentJson + "}";
            }
            else
            {
                senceHierarchy += senceH.allTempObject3DInfo[i].parentJson + "}";
            }

            if (i != (senceH.allTempObject3DInfo.Count - 1))
            {
                senceHierarchy += ",";
            }
        }

        senceHierarchy += "]";

        senceHierarchy += ",\"allMeshbeTo\":[";

        for (int i = 0; i < senceH.allGameObject3DMesh.Count; i++)
        {
            senceHierarchy += "{" + senceH.allGameObject3DMesh[i].json;
            senceHierarchy += ",\"type\": \"BufferGeometry\",\"data\": {";

            if (senceH.allGameObject3DMesh[i].mesh.subMeshCount > 0)
            {
                int meshCount = senceH.allGameObject3DMesh[i].mesh.subMeshCount;

                senceHierarchy += "\"groups\": [";
                int lastCount = 0;

                string indexGroupJson = "";
                for (int j = 0; j < meshCount; j++)
                {
                    indexGroupJson += "{\"start\":" + lastCount;
                    indexGroupJson += ",\"count\":" + senceH.allGameObject3DMesh[i].mesh.GetTriangles(j).Length;
                    lastCount      += senceH.allGameObject3DMesh[i].mesh.GetTriangles(j).Length;

                    indexGroupJson += ",\"materialIndex\":" + j;

                    if (j == meshCount - 1)
                    {
                        indexGroupJson += "}]";
                    }
                    else
                    {
                        indexGroupJson += "},";
                    }
                }
                senceHierarchy += indexGroupJson;
            }

            senceHierarchy += ",\"index\": {\"itemSize\": 1,\"type\": \"Uint16Array\",";
            senceHierarchy += "\"array\":[" + senceH.allGameObject3DMesh[i].indexBufferPos[0] + "," + senceH.allGameObject3DMesh[i].indexBufferPos[1] + "]}";

            senceHierarchy += ",\"attributes\": {";

            senceHierarchy += "\"position\": {\"itemSize\": 3,\"type\": \"Float32Array\",";
            senceHierarchy += "\"array\":[" + senceH.allGameObject3DMesh[i].vertexBufferPos[0] + "," + senceH.allGameObject3DMesh[i].vertexBufferPos[1] + "]}";

            /*
             *          if (senceH.allGameObject3DMesh[i].allChild!=null)
             *          {
             *              senceHierarchy += ",\"instancePosGroup\": {\"itemSize\": 3,\"type\": \"Float32Array\",";
             *              senceHierarchy += "\"array\":[" + senceH.allGameObject3DMesh[i].instancePosGroupPos[0] + "," + senceH.allGameObject3DMesh[i].instancePosGroupPos[1] + "]}";
             *          }
             */

            if (senceH.allGameObject3DMesh[i].useRealtimeLight)
            {
                senceHierarchy += ",\"normal\": {\"itemSize\": 3,\"type\": \"Float32Array\",";
                senceHierarchy += "\"array\": [" + senceH.allGameObject3DMesh[i].normalBufferPos[0] + "," + senceH.allGameObject3DMesh[i].normalBufferPos[1] + "]}";
            }

            if (senceH.allGameObject3DMesh[i].exportUV)
            {
                senceHierarchy += ",\"uv\": {\"itemSize\": 2,\"type\": \"Float32Array\",";
                senceHierarchy += "\"array\": [" + senceH.allGameObject3DMesh[i].uvBufferPos[0] + "," + senceH.allGameObject3DMesh[i].uvBufferPos[1] + "]}";
            }

            if (senceH.allGameObject3DMesh[i].exportUV2)
            {
                senceHierarchy += ",\"uv2\": {\"itemSize\": 2,\"type\": \"Float32Array\",";
                senceHierarchy += "\"array\": [" + senceH.allGameObject3DMesh[i].uv2BufferPos[0] + "," + senceH.allGameObject3DMesh[i].uv2BufferPos[1] + "]}";
            }

            if (senceH.allGameObject3DMesh[i].worldPosAndScalePos[1] > 0)
            {
                senceHierarchy += ",\"worldPosAndScale\": {\"itemSize\": 4,\"type\": \"Float32Array\",";
                senceHierarchy += "\"array\": [" + senceH.allGameObject3DMesh[i].worldPosAndScalePos[0] + "," + senceH.allGameObject3DMesh[i].worldPosAndScalePos[1] + "]}";
            }

            if (senceH.allGameObject3DMesh[i].hasWaterMat)
            {
                senceHierarchy += ",\"tangent\": {\"itemSize\": 3,\"type\": \"Float32Array\",";
                senceHierarchy += "\"array\": [" + senceH.allGameObject3DMesh[i].tangentsPos[0] + "," + senceH.allGameObject3DMesh[i].tangentsPos[1] + "]}";
            }

            senceHierarchy += "}}";

            if (i != senceH.allGameObject3DMesh.Count - 1)
            {
                senceHierarchy += "},";
            }
            else
            {
                senceHierarchy += "}";
            }
        }

        senceHierarchy += "]";

        if (senceH.sun != null)
        {
            senceHierarchy += ",\"sun\":[" + senceH.sun.transform.forward.x + "," + senceH.sun.transform.forward.y + "," + (-senceH.sun.transform.forward.z) + "]";
            senceHierarchy += ",\"sunIntensity\":[" + senceH.sun.color.r * senceH.sun.intensity + "," + senceH.sun.color.g * senceH.sun.intensity + "," + senceH.sun.color.b * senceH.sun.intensity + "]";
        }

        senceHierarchy += ",\"fogNearAndFar\":[" + senceH.fogNearAndFar.x + "," + senceH.fogNearAndFar.y + "]";
        senceHierarchy += ",\"fogColor\":[" + senceH.fogColor.r + "," + senceH.fogColor.g + "," + senceH.fogColor.b + "]";

        senceHierarchy += ",\"allCustomTexture\":[";

        for (int i = 0; i < senceH.allCustomTexture.Count; i++)
        {
            string expandName = AssetDatabase.GetAssetPath(senceH.allCustomTexture[i]).Split('.')[1];
            //  替换扩展名
            expandName = "jpg";
            Texture2D te = (Texture2D)senceH.allCustomTexture[i];
            if (te.format == TextureFormat.RGBA32 || te.format == TextureFormat.DXT5 || te.format == TextureFormat.BC6H || te.format == TextureFormat.ETC2_RGBA8 || te.format == TextureFormat.PVRTC_RGBA2 || te.format == TextureFormat.PVRTC_RGBA4)
            {
                expandName = "png";
            }

//          Debug.Log(te.format);
            senceHierarchy += "{\"name\":\"" + senceH.allCustomTexture[i].name + "\",\"type\":\"" + expandName + "\"";

            //    +senceH.diffuseMapBelongGameObjects[i].json;
            for (int j = 0; j < senceH.allGameObject3DTexture.Count; j++)
            {
                if (senceH.allGameObject3DTexture[j].tex == senceH.allCustomTexture[i])
                {
                    senceHierarchy += "," + senceH.allGameObject3DTexture[j].json;
                }
            }

            if (i != senceH.allCustomTexture.Count - 1)
            {
                senceHierarchy += "},";
            }
            else
            {
                senceHierarchy += "}";
            }
        }
        senceHierarchy += "]";

        //不需要知道allLightmap被谁用了,因为每个物体都有个Lightmap Index
        senceHierarchy += ",\"allLightmapTexture\":[";

        for (int i = 0; i < senceH.allLightmapTexture.Count; i++)
        {
            string expandName = AssetDatabase.GetAssetPath(senceH.allLightmapTexture[i]).Split('.')[1];

            expandName = "jpg";
            Texture2D te = (Texture2D)senceH.allLightmapTexture[i];
            if (te.format == TextureFormat.RGBA32 || te.format == TextureFormat.DXT5 || te.format == TextureFormat.BC6H || te.format == TextureFormat.ETC2_RGBA8)
            {
                expandName = "png";
            }

            senceHierarchy += "{\"name\":\"" + senceH.allLightmapTexture[i].name + "\",\"type\":\"" + expandName + "\"";

            if (i != senceH.allLightmapTexture.Count - 1)
            {
                senceHierarchy += "},";
            }
            else
            {
                senceHierarchy += "}";
            }
        }
        senceHierarchy += "]";

        //cubemapGroup
        senceHierarchy += ",\"allCubeMapTexture\":[";

        for (int i = 0; i < senceH.allCubeMapTexture.Count; i++)
        {
            string expandName = AssetDatabase.GetAssetPath(senceH.allCubeMapTexture[i]).Split('.')[1];

            //  替换扩展名
            expandName = "jpg";
            Cubemap te = (Cubemap)senceH.allCubeMapTexture[i];
            if (te.format == TextureFormat.RGBA32 || te.format == TextureFormat.DXT5 || te.format == TextureFormat.BC6H || te.format == TextureFormat.ETC2_RGBA8)
            {
                expandName = "png";
            }

            senceHierarchy += "{\"name\":\"" + senceH.allCubeMapTexture[i].name + "\",\"type\":\"" + expandName + "\"";

            //    +senceH.diffuseMapBelongGameObjects[i].json;
            for (int j = 0; j < senceH.allGameObject3DCubeTexture.Count; j++)
            {
                if (senceH.allGameObject3DCubeTexture[j].tex == senceH.allCubeMapTexture[i])
                {
                    senceHierarchy += "," + senceH.allGameObject3DCubeTexture[j].json;
                }
                else
                {
                    //senceHierarchy += ",\"beTo\":[]";
                }
            }

            if (i != senceH.allCubeMapTexture.Count - 1)
            {
                senceHierarchy += "},";
            }
            else
            {
                senceHierarchy += "}";
            }
        }
        senceHierarchy += "]";

        senceHierarchy += ",\"materials\":[";

        Material[] mats = senceH.allMaterials.ToArray();

        for (int i = 0; i < mats.Length; i++)
        {
            senceHierarchy += "{\"name\":\"" + mats[i].name + "\",";
            senceHierarchy += "\"shader\":" + ShaderJsonPos(senceH, mats[i].shader.name) + ",";
            //          senceHierarchy += "\"_SpecColor2\":\"" + ColorToString(mats[i].GetColor("_SpecColor2")) + "\",";
            //          senceHierarchy += "\"_Shininess\":\"" + mats[i].GetFloat("_Shininess").ToString() + "\",";
            senceHierarchy += "\"_Color\":\"" + ColorToString(mats[i].GetColor("_Color")) + "\",";

            if (mats[i].HasProperty("_MainTex") && mats[i].GetTexture("_MainTex") != null)
            {
                string textureName = mats[i].GetTexture("_MainTex").name;
                if (mats[i].shader.name == "@WJM_Glass_Middle")
                {
                }
                senceHierarchy += "\"_MainTex\":\"" + mats[i].GetTexture("_MainTex").name + "\",";
            }
            else
            {
                senceHierarchy += "\"_MainTex\":\"null\",";
            }

            if (mats[i].HasProperty("_Smooth"))
            {
                senceHierarchy += "\"_Smooth\":\"" + mats[i].GetFloat("_Smooth") + "\",";
            }

            if (mats[i].HasProperty("_Reflect"))
            {
                senceHierarchy += "\"_Reflect\":\"" + mats[i].GetFloat("_Reflect") + "\",";
            }

            if (mats[i].HasProperty("_FresnelPower"))
            {
                senceHierarchy += "\"_FresnelPower\":\"" + mats[i].GetFloat("_FresnelPower") + "\",";
            }

            if (mats[i].HasProperty("_FresnelBias"))
            {
                senceHierarchy += "\"_FresnelBias\":\"" + mats[i].GetFloat("_FresnelBias") + "\",";
            }

            if (mats[i].HasProperty("_alphaSin"))
            {
                senceHierarchy += "\"_alphaSin\":\"" + mats[i].GetFloat("_alphaSin") + "\",";
            }

            if (mats[i].HasProperty("_Width"))
            {
                senceHierarchy += "\"_Width\":\"" + mats[i].GetFloat("_Width") + "\",";
            }

            if (mats[i].HasProperty("_Height"))
            {
                senceHierarchy += "\"_Height\":\"" + mats[i].GetFloat("_Height") + "\",";
            }

            if (mats[i].HasProperty("_sizeBlend"))
            {
                senceHierarchy += "\"_sizeBlend\":\"" + mats[i].GetFloat("_sizeBlend") + "\",";
            }

            if (mats[i].HasProperty("_scale"))
            {
                senceHierarchy += "\"_scale\":\"" + mats[i].GetFloat("_scale") + "\",";
            }

            if (mats[i].HasProperty("_PviotOffsetX"))
            {
                senceHierarchy += "\"_PviotOffsetX\":\"" + mats[i].GetFloat("_PviotOffsetX") + "\",";
            }

            if (mats[i].HasProperty("_PviotOffsetY"))
            {
                senceHierarchy += "\"_PviotOffsetY\":\"" + mats[i].GetFloat("_PviotOffsetY") + "\",";
            }

            if (mats[i].HasProperty("_WaveSpeed"))
            {
                Vector4 v = mats[i].GetVector("_WaveSpeed");
                senceHierarchy += "\"_WaveSpeed\":\"" + ColorToString(new Color(v.x, v.y, v.z, v.w)) + "\",";
            }

            if (mats[i].HasProperty("_Cutoff"))
            {
                senceHierarchy += "\"_Cutoff\":\"" + mats[i].GetFloat("_Cutoff") + "\",";
            }

            if (mats[i].HasProperty("_lightmap_color"))
            {
                senceHierarchy += "\"_lightmap_color\":\"" + ColorToString(mats[i].GetColor("_lightmap_color")) + "\",";
            }
            else if (mats[i].HasProperty("_LightmapColor"))
            {
                senceHierarchy += "\"_lightmap_color\":\"" + ColorToString(mats[i].GetColor("_LightmapColor")) + "\",";
            }
            else
            {
                senceHierarchy += "\"_lightmap_color\":\"" + ColorToString(new Color(0.0f, 0.0f, 0.0f)) + "\",";
            }

            if (mats[i].HasProperty("_LightMap") && mats[i].GetTexture("_LightMap") != null)
            {
                senceHierarchy += "\"_LightMap\":\"" + mats[i].GetTexture("_LightMap").name + "\"";
            }
            else
            {
                senceHierarchy += "\"_LightMap\":\"null\"";
            }

            senceHierarchy += i == (mats.Length - 1) ? "}" : "},";
        }

        senceHierarchy += "]}";

        Debug.Log(hierarchyFolderFinal + "/senceHierarchy.json");

        if (useCompress)
        {
            System.IO.File.WriteAllBytes(hierarchyFolderFinal + "/senceHierarchy.json", CLZF2.Compress(System.Text.Encoding.Default.GetBytes(senceHierarchy)));
//          byte[] tempByte=System.Text.Encoding.Default.GetBytes(senceHierarchy);
//          System.IO.File.WriteAllBytes(hierarchyFolderFinal + "/senceHierarchy.json", LZ4.LZ4Codec.EncodeHC(tempByte,0,tempByte.Length));
        }
        else
        {
            System.IO.File.WriteAllText(hierarchyFolderFinal + "/senceHierarchy.json", senceHierarchy);
        }
    }
Esempio n. 5
0
 void CopyAllTexture(SenceHierarchyInfo sceneH)
 {
     BackUpAndScaleAndFormatAndSizeAndCopyTexture(sceneH.allCustomTexture, (int)customTextrueMaxSize);
     BackUpAndScaleAndFormatAndSizeAndCopyTexture(sceneH.allLightmapTexture, (int)lightmapTextrueMaxSize, true);
     BackUpAndScaleAndFormatAndSizeAndCopyCubeTexture(sceneH.allCubeMapTexture, 256);
 }
Esempio n. 6
0
    void OnGUI()
    {
        if (senceHierarchyInfo != null && sceneAsset != null)
        {
            EditorGUI.LabelField(new Rect(20, 10, 1000, 20), new GUIContent("Web 输出:" + savePath));
        }

        if (lastSenceHierarchyInfo != senceHierarchyInfo)
        {
            lastSenceHierarchyInfo = senceHierarchyInfo;
            CheckOutPutPathNameAndCreateFolder();
        }

        if (lastSceneAsset != sceneAsset)
        {
            lastSceneAsset = sceneAsset;
            CheckOutPutPathNameAndCreateFolder();
        }



        senceHierarchyInfo = (SenceHierarchyInfo)EditorGUI.ObjectField(new Rect(20, 40, 300, 16), senceHierarchyInfo, typeof(SenceHierarchyInfo), true);
        sceneAsset         = (SceneAsset)EditorGUI.ObjectField(new Rect(20, 60, 300, 16), sceneAsset, typeof(SceneAsset), true);

/*
 *      savePath = EditorGUI.TextField(new Rect(20, 60, 280, 18), new GUIContent(""), savePath);
 *      if (GUI.Button(new Rect(320, 59, 150, 20), new GUIContent("Set Path (设置路径)")))
 *      {
 *          string temp = EditorUtility.OpenFolderPanel("Select ThreeJS folder", Application.dataPath, "threejsdata");
 *          if (temp != "")
 *          {
 *              savePath = temp;
 *              Debug.Log(savePath);
 *          }
 *      }
 */

        customTextrueMaxSize   = (TextrueSize)EditorGUI.EnumPopup(new Rect(170, 110, 300, 25), "贴图输出最大值", customTextrueMaxSize);
        lightmapTextrueMaxSize = (TextrueSize)EditorGUI.EnumPopup(new Rect(170, 150, 300, 25), "unity烘培贴图输出最大值", lightmapTextrueMaxSize);

        onlyHierarchyAndInteractiveinfo = EditorGUI.ToggleLeft(new Rect(170, 190, 300, 25), new GUIContent("只导出Hierarchy+Interactive.info"), onlyHierarchyAndInteractiveinfo);

        if (GUI.Button(new Rect(320, 250, 150, 20), new GUIContent("Export")))
        {
            CheckOutPutPathNameAndCreateFolder();

            if (senceHierarchyInfo != null)
            {
                //BuildAsset时忽略这个物体,这个物体只用在导出web资源,运行时不需要
                senceHierarchyInfo.gameObject.hideFlags = HideFlags.DontSaveInBuild;

                useCompress = true;

                //收集场景中所有需要导出的资源
                senceHierarchyInfo.PrepareThreeJsSceneData();

                //创建输出的文件夹
//              if (!onlyHierarchyAndInteractiveinfo)
//              CreateOutPutFold();

                //创建bin流,包含shader流
                if (!onlyHierarchyAndInteractiveinfo)
                {
                    CreateBuuferGeometryBinFile(senceHierarchyInfo);
                }
                else
                {
                    senceHierarchyInfo.allGameObject3DMesh = senceHierarchyInfo.lastAllGameObject3DMesh;
                }

                //创建场景信息
                CreateSenceHierarchyJsonFile(senceHierarchyInfo);

                //创建交互信息
                CreateSenceInteractiveJsonFile(senceHierarchyInfo);

                //复制出所有图片
                if (!onlyHierarchyAndInteractiveinfo)
                {
                    CopyAllTexture(senceHierarchyInfo);
                }

                //清除临时添加的ThreeJsObject3DInfo
                senceHierarchyInfo.DestroyTempData();
            }
            else
            {
                string log = "请选中SenceHierarchyInfo物体,如果场景中没有,请在根目录添加一个";
                GlobalDebug.Addline(log);
                Debug.Log(log);
                Debug.LogWarning(log);
                Debug.LogError(log);
            }
        }
    }