コード例 #1
0
ファイル: EasyRoadsEditorMenu.cs プロジェクト: KeriN0s/Arazi
    public static void  FinalizeRoads()
    {
        bool destroyTerrainScript = true;

        if (EditorUtility.DisplayDialog("Build EasyRoads3D Objects", "This process includes destroying all EasyRoads3D control objects. Did you make a backup of the Scene? Do you want to continue?\n\nDepending on the number of EasyRoads3D objects in the Scene and used side objects, this process may take a while. Please be patient. ", "Yes", "No"))
        {
            RoadObjectScript[] scripts = (RoadObjectScript[])FindObjectsOfType(typeof(RoadObjectScript));
            foreach (RoadObjectScript script in scripts)
            {
                bool renderflag        = true;
                bool renderAlreadyDone = false;
                int  num = 0;
                if (!script.displayRoad)
                {
                    num = EditorUtility.DisplayDialogComplex("Disabled EasyRoads3D Object Detected:", script.gameObject.name + " is currently not displayed.\n\nWould you like to activate and finalize this object, destroy this object or skip it in this finalize procedure?", "Finalize", "Destroy", "Skip");
                    if (num == 0)
                    {
                        script.displayRoad = true;
                        if (script.OOOOODODCQ == null)
                        {
                            List <ODODDQQO> arr = OCDQDCQOCQ.OQOODCQQCO(false);
                            script.ODODCDOOQC(arr, OCDQDCQOCQ.OQQQOOOOOC(arr), OCDQDCQOCQ.OQODCCCCCD(arr));
                        }
                        script.OOOOODODCQ.OOQCQOCOOC(script.displayRoad, script.OCCOCOOOCC);
                    }
                    if (num == 1)
                    {
                        renderflag = false;
                    }
                    if (num == 2)
                    {
                        renderflag           = false;
                        destroyTerrainScript = false;
                    }
                }
                if (script.transform != null && renderflag && !script.OQCCDOOOCC)
                {
                    if (script.OOOOODODCQ == null)
                    {
                        List <ODODDQQO> arr = OCDQDCQOCQ.OQOODCQQCO(false);
                        script.ODODCDOOQC(arr, OCDQDCQOCQ.OQQQOOOOOC(arr), OCDQDCQOCQ.OQODCCCCCD(arr));
                    }

                    if (RoadObjectScript.erInit == "")
                    {
                        RoadObjectScript.erInit = OQCOQQCOQO.OQDODODOQD(RoadObjectScript.version);
                        OOQCOQOQQD.erInit       = RoadObjectScript.erInit;
                    }

                    if (script.OOOOODODCQ == null)
                    {
                        script.OCQOQOCQDC(script.transform, null, null, null);
                    }
                    OOQCOQOQQD.OQDQQQCDQQ = true;
                    if (!script.OQCCDOOOCC)
                    {
                        script.geoResolution = 0.5f;
                        script.OQOQQQCDOQ();
                        if (script.objectType < 2)
                        {
                            OQCOOCDODD(script);
                        }
                        script.OOOOODODCQ.terrainRendered = true;
                        script.ODCDQOOOQC();
                    }
                    if (script.displayRoad && script.objectType < 2)
                    {
                        if (script.objectType == 1)
                        {
                            SetWaterScript(script);
                        }
                        script.OOOOODODCQ.road.transform.parent = null;
                        script.OOOOODODCQ.road.layer            = 0;
                        script.OOOOODODCQ.road.name             = script.gameObject.name;
                    }
                    else if (script.OOOOODODCQ.road != null)
                    {
                        DestroyImmediate(script.OOOOODODCQ.road);
                    }



                    bool flag = false;
                    for (int i = 0; i < script.ODODQQOD.Length; i++)
                    {
                        if (script.ODODQQOD[i])
                        {
                            flag = true;
                            break;
                        }
                    }
                    if (flag)
                    {
                        ODDOQODQCQ.OQODCQDDCO(script);
                    }
                    foreach (Transform child in script.transform)
                    {
                        if (child.name == "Side Objects")
                        {
                            child.name   = script.gameObject.name + " - Side Objects ";
                            child.parent = null;
                        }
                    }
                }
                else if (script.OQCCDOOOCC)
                {
                    renderAlreadyDone    = true;
                    destroyTerrainScript = false;
                }
                if ((script.displayRoad || num != 2) && !renderAlreadyDone)
                {
                    DestroyImmediate(script.gameObject);
                }
            }

            if (destroyTerrainScript)
            {
                EasyRoads3DTerrainID[] terrainscripts = (EasyRoads3DTerrainID[])FindObjectsOfType(typeof(EasyRoads3DTerrainID));
                foreach (EasyRoads3DTerrainID script in terrainscripts)
                {
                    DestroyImmediate(script);
                }
            }
        }
    }