Пример #1
0
    /**
     *  @function   GenerateTerrain(행성 이름, 지형 구성정보, 구형 생성 Flag)
     *  @brief      지형을 생성한다.
     */
    public void GenerateTerrain(string planetName, TerrainInfo info, bool isSphere)
    {
        if (info == null)
        {
            return;
        }

        //행성 정보 재구성
        var voxelPlanet = InitVoxelPlanet(planetName);
        var planetInfo  = voxelPlanet.GetComponent <VoxelPlanetInfo>();

        planetInfo.Init(planetName);
        planetInfo.isSphere = isSphere;

        //지형 생성 정보 재구성
        planetInfo.terrainInfo = info.DeepCopy();

        //지형 오브젝트 초기화
        GameObject objTerrain  = InitPlanetObject(voxelPlanet, "Terrain");
        var        compTerrain = objTerrain.AddComponent <VoxelTerrain>();

        compTerrain.planetInfo = planetInfo;

        //청크 생성
        EditorCoroutineRunner.StartEditorCoroutine(compTerrain.BuildChunk());

        SaveCurrentPlanetInfo(voxelPlanet);
    }
Пример #2
0
    /**
     *  @function   GenerateTerrain(행성 이름, 구름 구성정보, 구형 생성 Flag)
     *  @brief      구름을 생성한다.
     */
    public void GenerateClouds(string planetName, CloudInfo info, bool isSphere)
    {
        if (info == null)
        {
            return;
        }

        //행성 정보 재구성
        var voxelPlanet = InitVoxelPlanet(planetName);
        var planetInfo  = voxelPlanet.GetComponent <VoxelPlanetInfo>();

        planetInfo.Init(planetName);
        planetInfo.isSphere = isSphere;

        //구름 생성 정보 재구성
        planetInfo.cloudInfo = info.DeepCopy();

        //구름 오브젝트 초기화
        GameObject objClouds  = InitPlanetObject(voxelPlanet, "Clouds");
        var        compClouds = objClouds.AddComponent <VoxelClouds>();

        compClouds.planetInfo = planetInfo;


        //청크 생성
        EditorCoroutineRunner.StartEditorCoroutine(compClouds.BuildChunk());
        SaveCurrentPlanetInfo(voxelPlanet);
    }
 void OnGUI()
 {
     is_toggle = EditorGUILayout.Toggle(is_toggle);
     if (is_toggle)
     {
         EditorCoroutineRunner.StartEditorCoroutine(test());
     }
 }
Пример #4
0
    static IEnumerator PackAllAssetBundleAsync(bool check)
    {
        string srcConfFolder = GetConf();

        if (string.IsNullOrEmpty(srcConfFolder))
        {
            yield break;
        }

        if (!Directory.Exists(ResourceConst.PkgBundleFolder))
        {
            Directory.CreateDirectory(ResourceConst.PkgBundleFolder);
        }

        Clear();

        DateTime dt1 = System.DateTime.UtcNow;

        // 分析场景;
        yield return(EditorCoroutineRunner.StartEditorCoroutine(DisposeSceneAsync()));

        DateTime dt2 = System.DateTime.UtcNow;

        yield return(EditorCoroutineRunner.StartEditorCoroutine(DisposeResourcesFolderAsync()));

        DateTime dt3 = System.DateTime.UtcNow;

        Build();

        DateTime dt4 = System.DateTime.UtcNow;

        // 拷贝Conf;
        PackAssetBundleUtlis.CopyFolder(srcConfFolder, bundleBuildFolder);
        FileListUtility.BuildFileList(false);
        DateTime dt5 = System.DateTime.UtcNow;

        string confFolder = Path.GetFileName(srcConfFolder);

        PackAssetBundleUtlis.CopyAssetBundle(bundleBuildFolder, ResourceConst.PkgBundleFolder, confFolder);

        DateTime dt6 = System.DateTime.UtcNow;

        string info = string.Format("bundle打包完成\n总共{0}个文件\n耗时:{1}分钟\n其中:\n"
                                    , _packTools.Count, (dt6 - dt1).TotalMinutes.ToString("f1"));

        info = string.Format("{0}分析场景资源耗时:{1}秒\n", info, (dt2 - dt1).TotalSeconds.ToString("f1"));
        info = string.Format("{0}分析Resource资源耗时:{1}秒\n", info, (dt3 - dt2).TotalSeconds.ToString("f1"));
        info = string.Format("{0}打包AssetBundle耗时:{1}秒\n", info, (dt4 - dt3).TotalSeconds.ToString("f1"));
        info = string.Format("{0}生成FileList耗时:{1}秒\n", info, (dt5 - dt4).TotalSeconds.ToString("f1"));
        info = string.Format("{0}拷贝AssetBundle耗时:{1}秒\n", info, (dt6 - dt5).TotalSeconds.ToString("f1"));

        EditorUtility.DisplayDialog("打包完成", info, "好的");

        if (check)
        {
            PackAssetBundleUtlis.CheckAllBundles();
        }
    }
    public static void DownloadConfig <T>()
        where T : CsvDataParser, new()
    {
        m_parser = new T();

        GLDDownloadConfig downloadConfig = LoadDownLoadConfig();

        EditorCoroutineRunner.StartEditorCoroutine(DownloadGoogleSheet(downloadConfig));
    }
Пример #6
0
        /// <summary>
        /// 更新服务器资源数据
        /// </summary>
        public void UpdateSkillAction()
        {
            string url = string.Format("{0}{1}{2}", ActionEventConfig.SERVER_URL, ActionEventConfig.SERVER_SKILL_ACTION_URL, ActionEventConfig.LIST);

            //设置正在获取服务器数据
            is_get_server_info = true;

            EditorCoroutineRunner.StartEditorCoroutine(GetServerInfo(url, UpdateSkillActionDone));
        }
Пример #7
0
        /// <summary>
        /// 更新服务器资源数据
        /// </summary>
        public void UpdateClientEffect()
        {
            string url = string.Format("{0}{1}{2}", ActionEventConfig.SERVER_URL, ActionEventConfig.SERVER_CLIENT_EFFECT_URL, ActionEventConfig.LIST);

            //设置正在获取服务器数据
            is_get_server_info = true;

            EditorCoroutineRunner.StartEditorCoroutine(GetServerInfo(url, UpdateClientEffectDone));
        }
Пример #8
0
    public void Build()
    {
        if (EditorApplication.isPlaying)
        {
            EditorApplication.ExecuteMenuItem("Edit/Play");
        }
        AssetDatabase.Refresh();

        EditorCoroutineRunner.StartEditorCoroutine(build());
    }
Пример #9
0
        /// <summary>
        /// 打包所有资源
        /// </summary>
        public static void BuildAllAssetBundles()
        {
            if (ToolsHelper.IsPlaying())
            {
                return;
            }
            ToolsHelper.ClearConsole();

            EditorCoroutineRunner.StartEditorCoroutine(_OnBuildAllAssetBundles());
        }
Пример #10
0
 void Build()
 {
     if (GUILayout.Button("Build"))
     {
         PrefabUtility.DisconnectPrefabInstance(builder);
         Undo.RecordObject(builder, "");
         EditorCoroutineRunner.StartEditorCoroutine(IEBuild());
         EditorCoroutineRunner.StartEditorCoroutine(ShowProgress());
     }
 }
 private void DrawPartScreen()
 {
     EditorGUILayout.BeginHorizontal();
     if (GUILayout.Button("区域", GUILayout.Width(100)))
     {
         DoPartScreen();
         EditorCoroutineRunner.StartEditorCoroutine(DoPartScreen());
     }
     EditorGUILayout.EndHorizontal();
     GuiUtil.NewLine();
 }
Пример #12
0
    void Package()
    {
        isPacking = true;
        //自动保存设置文件
        CreatePackageFile();

        //自动增加小版本号
        VersionService.SmallVersion++;
        VersionService.CreateVersionFile();

        EditorCoroutineRunner.StartEditorCoroutine(PackageService.Package(relyPackages, bundles, ProessCallback));
    }
    /// //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    void Painter()
    {
        //返回当前点击的场景游戏物体;选择多个则返回第一个选择的;未选择相应的则返回null
        Transform CurrentSelect = Selection.activeTransform;

        //获取当前模型的MeshFilter
        MeshFilter temp = CurrentSelect.GetComponent <MeshFilter>();

        //圓的大小
        //笔刷在模型上的正交大小 = float(1-36)   *   當前物體x的scale值    *   当前物體的MeshFilter的x大小  /  200
        float orthographicSize = (brushSize * CurrentSelect.localScale.x) * (temp.sharedMesh.bounds.size.x / 200);

        //从材质球中获取Control贴图
        MaskTex = (Texture2D)CurrentSelect.gameObject.GetComponent <MeshRenderer>().sharedMaterial.GetTexture("_Control");

        //笔刷在模型上的直徑大小 = (int)四捨五入 <  float(1-36)  *  Control贴图寬度  /  100    >
        brushSizeInPourcent = (int)Mathf.Round((brushSize * MaskTex.width) / 100);

        //bool ToggleF = false;
        Event e = Event.current;//检测输入,Event.current当前窗口的事件

        //不想让SceneView视图接收鼠标点击选择事件,只希望在Hierarchy视图选择
        HandleUtility.AddDefaultControl(0);

        RaycastHit raycastHit = new RaycastHit();
        Ray        terrain    = HandleUtility.GUIPointToWorldRay(e.mousePosition);                          //从鼠标位置发射一条射线

        if (Physics.Raycast(terrain, out raycastHit, Mathf.Infinity, 1 << LayerMask.NameToLayer("ground"))) //射线检测名为"ground"的层
        {
            Handles.color = new Color(1f, 1f, 0f, 1f);                                                      //(滑鼠)控制器的颜色,黃色(R+G)
            Handles.DrawWireDisc(raycastHit.point, raycastHit.normal, orthographicSize);                    //根据笔刷大小在鼠标位置显示一个圆

            //鼠标点击或按下并拖动进行绘制
            if ((e.type == EventType.MouseDrag && e.alt == false && e.control == false && e.shift == false && e.button == 0) || (e.type == EventType.MouseDown && e.shift == false && e.alt == false && e.control == false && e.button == 0 && ToggleF == false))
            {
                //选择绘制的通道

                Vector2 pixelUV = raycastHit.textureCoord;          //取得raycast點到的 纹理坐标(0~1)
                EditorCoroutineRunner.StartEditorCoroutine(Draw(pixelUV));
                //Draw(pixelUV);
                ToggleF = true;
            }
        }
        else if (e.type == EventType.Layout && e.alt == false && e.button == 0 && ToggleF == true)
        {
            SaveTexture();//绘制结束保存Control贴图
            ToggleF = false;
        }
    }
Пример #14
0
    static void LoadBundle()
    {
        //EditorApplication.isPlaying = true;
        string bundleFile = Utils.OpenFileLocalPath(new string[] { TARGET_FORMAT });

        Debug.Log(bundleFile);
        if (string.IsNullOrEmpty(bundleFile))
        {
            EditorUtility.DisplayDialog("error", "your selection is error," + "please select the real assetbunldes file", "sure");
        }
        else
        {
            EditorCoroutineRunner.StartEditorCoroutine(LoadBundle(bundleFile));
        }
    }
Пример #15
0
 private static IEnumerator GetCitys()
 {
     isGenerateData  = true;
     Map.ProvinceNum = 0;
     for (int i = mapSizeX; i >= 0; i -= 16)
     {
         for (int j = mapSizeY; j >= 0; j -= 16)
         {
             if (isGenerateData && MapData.ColorNear(MapData.Map.GetPixel(i, j), MapData.MapColor))
             {
                 yield return(EditorCoroutineRunner.StartEditorCoroutine(new Province().GetCityFromPoint(i, j)));
             }
         }
     }
 }
    BuildAssetBundleOptions relyBuildOption; //依赖包打包设置

    void CheckAndPackage()
    {
        CheckPackage();

        if (errorCount == 0)
        {
            EditorCoroutineRunner.StartEditorCoroutine(Package());
        }
        else
        {
            if (EditorUtility.DisplayDialog("失败", "打包设置有错误,请先修复错误!", "好的", "仍要打包") == false)
            {
                EditorCoroutineRunner.StartEditorCoroutine(Package());
            }
        }
    }
Пример #17
0
        void SendServerInfo(Table_Skill skill, UpdateServerInfoEnum type)
        {
            string t   = GetServerInfoType(type);
            string url = string.Format("{0}{1}{2}", ActionEventConfig.SERVER_URL, ActionEventConfig.SERVER_SKILL_ACTION_URL, t);

            switch (type)
            {
            case UpdateServerInfoEnum.INSERT:
            case UpdateServerInfoEnum.UPDATE:
                EditorCoroutineRunner.StartEditorCoroutine(SendInfo(url, SendUpdateInfo(skill)));
                break;

            case UpdateServerInfoEnum.DELETE:
                EditorCoroutineRunner.StartEditorCoroutine(SendInfo(url, SendDeleteInfo(skill.id)));
                break;
            }
        }
Пример #18
0
        void SendServerInfo(Table_Client_Action_Res ar, UpdateServerInfoEnum type)
        {
            string t   = GetServerInfoType(type);
            string url = string.Format("{0}{1}{2}", ActionEventConfig.SERVER_URL, ActionEventConfig.SERVER_RES_URL, t);

            switch (type)
            {
            case UpdateServerInfoEnum.INSERT:
            case UpdateServerInfoEnum.UPDATE:
                EditorCoroutineRunner.StartEditorCoroutine(SendInfo(url, SendUpdateInfo(ar)));
                break;

            case UpdateServerInfoEnum.DELETE:
                EditorCoroutineRunner.StartEditorCoroutine(SendInfo(url, SendDeleteInfo(ar.id)));
                break;
            }
        }
Пример #19
0
    public void OnGUI()
    {
        if (GUILayout.Button("reset noise"))
        {
            NoiseTexGenerator.Init();
        }
        CustomRenderTexture[] crtList = new CustomRenderTexture[NoiseTexGenerator.NOISE_NUM];
        for (int i = 0; i < NoiseTexGenerator.NOISE_NUM; i++)
        {
            GUILayout.BeginArea(new Rect(10 + 310 * i, 10, 300, 800));
            crtList[i] = DrawNoiseArea(i);
            GUILayout.EndArea();
        }
        GUILayout.BeginArea(new Rect(10 + 310 * NoiseTexGenerator.NOISE_NUM, 10, 550, 800));
        CustomRenderTexture noiseTex = NoiseTexGenerator.t_Blend2D;

        for (int i = 0; i < NoiseTexGenerator.NOISE_NUM; i++)
        {
            noiseTex.material.SetTexture("_MainTex" + i, crtList[i]);
        }
        GUI.DrawTexture(texShowerRect, noiseTex, ScaleMode.ScaleToFit, false);
        GUILayout.BeginArea(new Rect(10, 300, 280, 500));
        blendMaterial = EditorGUILayout.ObjectField(blendMaterial, typeof(Material), false) as Material;
        if (blendMaterial != null)
        {
            noiseTex.material = blendMaterial;
        }
        else
        {
            blendMaterial = noiseTex.material;
        }
        EditorGUILayout.ObjectField(noiseTex, typeof(CustomRenderTexture));
        EditorGUILayout.LabelField("-------------------------------------------EXPORT------------------------------------------");
        width  = EditorGUILayout.IntField("Width: ", width);
        height = EditorGUILayout.IntField("Height: ", height);

        {
            if (GUILayout.Button("Export PNG"))
            {
                EditorCoroutineRunner.StartEditorCoroutine(Export());
            }
        }
        GUILayout.EndArea();
        GUILayout.EndArea();
    }
Пример #20
0
    //绘制窗口时调用
    void OnGUI()
    {
        //选择目标平台
        EditorGUILayout.LabelField(string.Format("当前平台:{0}", EditorUserBuildSettings.activeBuildTarget.ToString()));
        GUILayout.Space(25);

        if (GUILayout.Button("制作资源包", GUILayout.Width(100)))
        {
            if (!m_IsDoing)
            {
                m_IsDoing = true;
                m_SelectFiles.Clear();
                m_AseetBundleNames.Clear();

                EditorCoroutineRunner.StartEditorCoroutine(coMakePackets());
            }
        }
    }
Пример #21
0
    /**
     *  @function   GenerateTerrain(PlanetObject)
     *  @brief      PlanetObject의 정보를 바탕으로 지형을 생성한다.
     */
    public void GenerateTerrain(GameObject voxelPlanet)
    {
        if (voxelPlanet == null)
        {
            return;
        }

        var planetInfo = voxelPlanet.GetComponent <VoxelPlanetInfo>();

        //지형 오브젝트 초기화
        GameObject objTerrain  = InitPlanetObject(voxelPlanet, "Terrain");
        var        compTerrain = objTerrain.AddComponent <VoxelTerrain>();

        compTerrain.planetInfo = planetInfo;

        //청크 생성
        EditorCoroutineRunner.StartEditorCoroutine(compTerrain.BuildChunk());
        SaveCurrentPlanetInfo(voxelPlanet);
    }
Пример #22
0
    /**
     *  @function   GenerateClouds(PlanetObject)
     *  @brief      PlanetObject의 정보를 바탕으로 구름을 생성한다.
     */
    public void GenerateClouds(GameObject voxelPlanet)
    {
        if (voxelPlanet == null)
        {
            return;
        }

        var planetInfo = voxelPlanet.GetComponent <VoxelPlanetInfo>();


        //구름 오브젝트 초기화
        GameObject objClouds  = InitPlanetObject(voxelPlanet, "Clouds");
        var        compClouds = objClouds.AddComponent <VoxelClouds>();

        compClouds.planetInfo = planetInfo;


        //청크 생성
        EditorCoroutineRunner.StartEditorCoroutine(compClouds.BuildChunk());
        SaveCurrentPlanetInfo(voxelPlanet);
    }
Пример #23
0
        public IEnumerator GetCityFromPoint(int x, int y)
        {
            List <Vector2> BorderPointList = new List <Vector2>();
            Vector2        vector          = GetBorderPoint(x, y);

            if (!vector.Equals(Vector2.zero))
            {
                if (vector.x >= 0)
                {
                    BorderPointList.Add(vector);
                    bool isMore = true;
                    int  timer  = 0;
                    while (isMore)
                    {
                        isMore = false;

                        if (AddMorePoint(BorderPointList))
                        {
                            isMore = true;
                        }

                        if (timer >= MapData.BoarderGenerateSpeed)
                        {
                            timer = 0;
                            MapData.Map.Apply();
                            yield return(new WaitForFixedUpdate());
                        }
                        timer++;
                    }
                }
            }
            if (BorderPointList.Count > 2)
            {
                yield return(EditorCoroutineRunner.StartEditorCoroutine(new Map().MakeCityMesh(GameObject.Instantiate(Resources.Load("MapData/BaseMeshObject")) as GameObject, BorderPointList)));
            }
        }
Пример #24
0
    public static void BulidTarget(EPlatformType pfType, string channelid = "")
    {
        appSetting = ReadAppSettingTxt();
        string      pfName          = pfType.ToString();
        string      app_name        = $"{ Application.productName }.{pfName}_{ DateTime.Now.ToString("yyyyMMdd_HHmm")}";
        string      target_dir      = "";
        string      target_name     = "";
        BuildTarget buildTarget     = BuildTarget.Android;
        string      applicationPath = Application.dataPath.Replace("/Assets", "");

        switch (pfType)
        {
        case EPlatformType.SDK_ReleaseIOS:
        case EPlatformType.SDK_TestIOS:
            target_dir  = applicationPath + "/Builds/BuildIOS";
            target_name = app_name;
            buildTarget = BuildTarget.iOS;
            break;

        default:
            target_dir  = applicationPath + "/Builds/BuildAndroid";
            target_name = app_name;
            buildTarget = BuildTarget.Android;
            PlayerSettings.Android.minSdkVersion = AndroidSdkVersions.AndroidApiLevel19;
            EditorUserBuildSettings.exportAsGoogleAndroidProject = true;
            //SetKey();
            break;
        }

        if (string.IsNullOrEmpty(channelid))
        {
            //Test_IOS_Proj_xfkp
            channelid = "Test_" + buildTarget.ToString() + "_" + AppSetting.MineGameName;
        }

        Directory.CreateDirectory(target_dir);
        //PlayerSettings.bundleVersion = "9.9.9";
        //PlayerSettings.ve = "9999";
        if (pfType == EPlatformType.SDK_Test || pfType == EPlatformType.VersionPackage)
        {
            //安卓测试版设置包名
            PlayerSettings.SetApplicationIdentifier(BuildTargetGroup.Android, "com.wedobest.u3d.demo");

            if (pfType == EPlatformType.VersionPackage)
            {
                //版本包添加预定义宏
                string ScriptingDefine = PlayerSettings.GetScriptingDefineSymbolsForGroup(BuildTargetGroup.Android);
                if (!ScriptingDefine.Contains("VersionPackage"))
                {
                    if (string.IsNullOrEmpty(ScriptingDefine))
                    {
                        ScriptingDefine = "VersionPackage";
                    }
                    else
                    {
                        ScriptingDefine += ";VersionPackage";
                    }
                    PlayerSettings.SetScriptingDefineSymbolsForGroup(BuildTargetGroup.Android, ScriptingDefine);
                }
            }
        }
        else if (pfType == EPlatformType.SDK_Release)
        {
            //安卓发布版设置包名
            PlayerSettings.SetApplicationIdentifier(BuildTargetGroup.Android, GetAppSettingInfo(2));
        }
        BuildPipeline.BuildPlayer(EditorBuildSettings.scenes, target_dir + "/" + target_name, buildTarget, BuildOptions.None);

        if (pfType == EPlatformType.SDK_ReleaseIOS || pfType == EPlatformType.SDK_TestIOS)
        {
            return;
        }
        ToolsHelper.Log("生成Android工程完成,开始替换SDK文件");
        //整理安卓工程
        string projectPath = target_dir + "/" + target_name + $"/{Application.productName}/";

        //string projectPath = target_dir + "/" + "GameFrameworkTest.SDK_Test_20191210_1012" + $"/{Application.productName}/";
        EditorCoroutineRunner.StartEditorCoroutine(_OnBuildAllAssetBundles(pfType, projectPath, channelid));
    }
Пример #25
0
 static void InitSetup()
 {
     HttpUtil.DoInit();
     EditorCoroutineRunner.StartEditorCoroutine(_InitSetup());
 }
Пример #26
0
        private string RequestAdmobConfig(string appKey)
        {
            if (Application.internetReachability == NetworkReachability.NotReachable)
            {
                return("Please check your network. You can also fill in manually.");
            }

            string result = string.Empty;

            if (!string.IsNullOrEmpty(appKey))
            {
                string api = "https://sdk.mas.yodo1.com/v1/unity/setup/" + appKey;
#if UNITY_2018
                string response = HttpGet(api);
                Dictionary <string, object> obj = (Dictionary <string, object>)Yodo1JSON.Deserialize(response);
                Debug.Log("response:" + response);
                if (obj != null)
                {
                    if (obj.ContainsKey("app_key"))
                    {
                        app_key = (string)obj["app_key"];
                    }
                    if (obj.ContainsKey("name"))
                    {
                        app_name = (string)obj["name"];
                    }
                    if (obj.ContainsKey("bundle_id"))
                    {
                        app_bundle_id = (string)obj["bundle_id"];
                    }
                    if (obj.ContainsKey("platform"))
                    {
                        app_platform = (string)obj["platform"];
                    }
                    if (obj.ContainsKey("admob_key"))
                    {
                        app_admob_key = (string)obj["admob_key"];
                    }

                    if (app_platform == "ios")
                    {
                        this.adSettings.iOSSettings.AdmobAppID = app_admob_key;
                    }
                    else if (app_platform == "android")
                    {
                        this.adSettings.androidSettings.AdmobAppID = app_admob_key;
                    }
                }
                else
                {
                    result = "MAS App Key not found. please fill in correctly.";
                }
#else
                ApiCallback callback = delegate(string response)
                {
                    Dictionary <string, object> obj = (Dictionary <string, object>)Yodo1JSON.Deserialize(response);
                    Debug.Log("response:" + response);
                    if (obj != null)
                    {
                        if (obj.ContainsKey("app_key"))
                        {
                            app_key = (string)obj["app_key"];
                        }
                        if (obj.ContainsKey("name"))
                        {
                            app_name = (string)obj["name"];
                        }
                        if (obj.ContainsKey("bundle_id"))
                        {
                            app_bundle_id = (string)obj["bundle_id"];
                        }
                        if (obj.ContainsKey("platform"))
                        {
                            app_platform = (string)obj["platform"];
                        }
                        if (obj.ContainsKey("admob_key"))
                        {
                            app_admob_key = (string)obj["admob_key"];
                        }

                        if (app_platform == "ios")
                        {
                            this.adSettings.iOSSettings.AdmobAppID = app_admob_key;
                        }
                        else if (app_platform == "android")
                        {
                            this.adSettings.androidSettings.AdmobAppID = app_admob_key;
                        }
                    }
                    else
                    {
                        result = "MAS App Key not found. please fill in correctly.";
                    }
                };
                EditorCoroutineRunner.StartEditorCoroutine(SendUrl(api, callback));
#endif
            }
            else
            {
                result = "Please enter the correct MAS App Key.";
            }
            return(result);
        }
Пример #27
0
    public void OnGUI()
    {
        if (GUILayout.Button("reset noise"))
        {
            NoiseTexGenerator.Init();
        }
        CustomRenderTexture noiseTex = NoiseTexGenerator_Single.GetPreViewNoiseRT(t);

        if (t == NoiseTexGenerator_Single.NoiseType.PerilinNoise3D || t == NoiseTexGenerator_Single.NoiseType.PerilinNoise3D_ZLoop)
        {
            PreviewTexdMat.SetTexture("_Volume", noiseTex);
            Texture t = DrawTexture3DPreview(noiseTex, texShowerRect, BackgroundGuiStyle);

            GUI.DrawTexture(texShowerRect, t, ScaleMode.ScaleToFit, false);
        }
        else
        {
            GUI.DrawTexture(texShowerRect, noiseTex, ScaleMode.ScaleToFit, false);
        }
        for (int i = 0; i < 48; i++)
        {
            EditorGUILayout.Space();
        }
        if (t == NoiseTexGenerator_Single.NoiseType.PerilinNoise3D || t == NoiseTexGenerator_Single.NoiseType.PerilinNoise3D_ZLoop)
        {
            tex3D_Z = EditorGUILayout.Slider("Z:", tex3D_Z, -2, 2);
            PreviewTexdMat.SetFloat("_Z", tex3D_Z);
        }
        else
        {
            for (int i = 0; i < 5; i++)
            {
                EditorGUILayout.Space();
            }
        }

        EditorGUILayout.LabelField("--------------NoiseParam---------------");
        t     = (NoiseTexGenerator_Single.NoiseType)EditorGUILayout.EnumPopup("Noise Tpye: ", t);
        scale = EditorGUILayout.FloatField("Scale: ", scale);
        noiseTex.material.SetFloat("_Scale", scale);
        EditorGUILayout.ObjectField(noiseTex, typeof(CustomRenderTexture));
        //_previewTex3dMat2 = (Material)EditorGUILayout.ObjectField(_previewTex3dMat2, typeof(Material),false);
        useFBM = EditorGUILayout.Toggle("Use FBM:", useFBM);
        if (useFBM)
        {
            noiseTex.material.EnableKeyword("_USEFBM");
            octaves    = EditorGUILayout.IntSlider("Octaves:", octaves, 1, 10);
            lacunarity = EditorGUILayout.FloatField("Lacunarity:", lacunarity);
            gain       = EditorGUILayout.FloatField("Gain:", gain);
            amplitude0 = EditorGUILayout.FloatField("Amplitude0:", amplitude0);
            frequency0 = EditorGUILayout.FloatField("Frequency0:", frequency0);
            noiseTex.material.SetInt("_Octaves", octaves);
            noiseTex.material.SetFloat("_Lacunarity", lacunarity);
            noiseTex.material.SetFloat("_Gain", gain);
            noiseTex.material.SetFloat("_Amplitude0", amplitude0);
            noiseTex.material.SetFloat("_Frequency0", frequency0);
        }
        else
        {
            noiseTex.material.DisableKeyword("_USEFBM");
        }


        //distance = EditorGUILayout.FloatField("Distance: ", distance);
        EditorGUILayout.LabelField("--------------EXPORT---------------");
        width  = EditorGUILayout.IntField("Width: ", width);
        height = EditorGUILayout.IntField("Height: ", height);
        if (t == NoiseTexGenerator_Single.NoiseType.PerilinNoise3D || t == NoiseTexGenerator_Single.NoiseType.PerilinNoise3D_ZLoop)
        {
            depth = EditorGUILayout.IntSlider("Depth: ", depth, 1, Mathf.FloorToInt(SystemInfo.maxTextureSize / (float)height));
        }

        if (t == NoiseTexGenerator_Single.NoiseType.PerilinNoise3D || t == NoiseTexGenerator_Single.NoiseType.PerilinNoise3D_ZLoop)
        {
            if (GUILayout.Button("Export Tex3D(large memory!)"))
            {
                EditorCoroutineRunner.StartEditorCoroutine(ExportTex3D(false));
            }
            if (GUILayout.Button("Export PNG"))
            {
                EditorCoroutineRunner.StartEditorCoroutine(ExportTex3D(true));
            }
        }
        else
        {
            if (GUILayout.Button("Export PNG"))
            {
                EditorCoroutineRunner.StartEditorCoroutine(Export());
            }
        }
    }
Пример #28
0
        /// <summary>
        /// 获取地图的相关资源
        /// </summary>
        private static void GetMapData()
        {
            if (GUILayout.Button("加载地图相关数据"))
            {
                GameObject baseObj = GameObject.Find("BaseGameObject");
                if (baseObj != null)
                {
                    GameObject.DestroyImmediate(baseObj);
                }

                Object mapPrefab = Resources.Load("MapData/MapObject");
                if (mapPrefab != null)
                {
                    mapObject = GameObject.Instantiate(mapPrefab) as GameObject;
                    mapObject.transform.parent = MapData.BaseGameObject.transform;
                    MapData.Image = null;
                    MapData.Image = (mapObject).GetComponentInChildren <RawImage>();
                    if (MapData.Image != null)
                    {
                        Object mapTexture = Resources.Load("MapData/map");
                        if (mapTexture != null)
                        {
                            if (MapData.Map != null)
                            {
                                GameObject.DestroyImmediate(MapData.Map);
                                MapData.Map = null;
                            }
                            MapData.Map           = GameObject.Instantiate <Texture2D>(mapTexture as Texture2D);
                            mapSizeX              = MapData.Map.width;
                            mapSizeY              = MapData.Map.height;
                            MapData.Image.texture = MapData.Map;
                            MapData.Image.SetNativeSize();
                            isLoadData = true;
                        }

                        mapTexture = Resources.Load("MapData/colorMap");
                        if (mapTexture != null)
                        {
                            MapData.ColorMap = GameObject.Instantiate <Texture2D>(mapTexture as Texture2D);
                        }
                    }
                }
            }
            if (isLoadData)
            {
                if (GUILayout.Button("生成数据"))
                {
                    EditorCoroutineRunner.StartEditorCoroutine(GetCitys());
                }

                if (GUILayout.Button("强制生成单个三角面"))
                {
                    MapData.IsForceContinue = true;
                }

                if (GUILayout.Button("停止生成数据"))
                {
                    isGenerateData = false;
                }
            }
        }
Пример #29
0
 public static void GenAll()
 {
     EditorCoroutineRunner.StartEditorCoroutine(GenAllSync());
 }
Пример #30
0
    public void OnGUI()
    {
        if (GUILayout.Button("reset noise"))
        {
            NoiseTexGenerator.Init();
        }
        CustomRenderTexture[] crtList = new CustomRenderTexture[NoiseTexGenerator.NOISE_NUM];
        for (int i = 0; i < NoiseTexGenerator.NOISE_NUM; i++)
        {
            GUILayout.BeginArea(new Rect(10 + 310 * i, 10, 300, 800));
            crtList[i] = DrawNoiseArea(i);
            GUILayout.EndArea();
        }
        GUILayout.BeginArea(new Rect(10 + 310 * NoiseTexGenerator.NOISE_NUM, 10, 550, 800));
        CustomRenderTexture noiseTex = NoiseTexGenerator.t_Blend3D;

        for (int i = 0; i < NoiseTexGenerator.NOISE_NUM; i++)
        {
            noiseTex.material.SetTexture("_MainTex" + i, crtList[i]);
        }
        if (true)
        {
            PreviewTex3dMat[NoiseTexGenerator.NOISE_NUM].SetTexture("_Volume", noiseTex);
            Rect    rect = new Rect(texShowerRect.x + 300 * NoiseTexGenerator.NOISE_NUM, texShowerRect.y, texShowerRect.width, texShowerRect.height);
            Texture t    = DrawTexture3DPreview(noiseTex, rect, BackgroundGuiStyle, PreviewTex3dMat[NoiseTexGenerator.NOISE_NUM]);

            GUI.DrawTexture(texShowerRect, t, ScaleMode.ScaleToFit, false);
        }
        GUILayout.BeginArea(new Rect(10, 300, 280, 500));
        tex3DBlend_Z = EditorGUILayout.Slider("Z:", tex3DBlend_Z, -2, 2);
        PreviewTex3dMat[NoiseTexGenerator.NOISE_NUM].SetFloat("_Z", tex3DBlend_Z);
        blendMaterial = EditorGUILayout.ObjectField(blendMaterial, typeof(Material), false) as Material;
        if (blendMaterial != null)
        {
            noiseTex.material = blendMaterial;
        }
        else
        {
            blendMaterial = noiseTex.material;
        }
        EditorGUILayout.ObjectField(noiseTex, typeof(CustomRenderTexture));
        EditorGUILayout.LabelField("-------------------------------------------EXPORT------------------------------------------");
        width  = EditorGUILayout.IntField("Width: ", width);
        height = EditorGUILayout.IntField("Height: ", height);
        if (true)
        {
            depth = EditorGUILayout.IntSlider("Depth: ", depth, 1, Mathf.FloorToInt(SystemInfo.maxTextureSize / (float)height));
        }

        if (true)
        {
            if (GUILayout.Button("Export Tex3D(large memory!)"))
            {
                EditorCoroutineRunner.StartEditorCoroutine(ExportTex3D(false));
            }
            if (GUILayout.Button("Export PNG"))
            {
                EditorCoroutineRunner.StartEditorCoroutine(ExportTex3D(true));
            }
        }
        else
        {
            if (GUILayout.Button("Export PNG"))
            {
                EditorCoroutineRunner.StartEditorCoroutine(Export());
            }
        }
        GUILayout.EndArea();
        GUILayout.EndArea();
    }