Esempio n. 1
0
    public override void OnInspectorGUI()
    {
        DrawDefaultInspector();

        TerrainFoliage myScript = (TerrainFoliage)target;

        if (GUILayout.Button("Copy Terrain Detail Prototypes"))
        {
            myScript.DumpDetailPrototypes();
        }
    }
Esempio n. 2
0
    public void generate()
    {
        generateWater();
        TerrainGeneration TG = new TerrainGeneration();

        TerrainGeneration.current = TG;
        TerrainData tData = new TerrainData();

        tData.size = dimensions;
        Terrain.CreateTerrainGameObject(tData);
        TG.SetMountainFreq        = MountainFreq;
        TG.SetWaterlevel          = WaterLevel;
        TG.BumpMultiplier         = BumpMultiplier;
        TG.BumpRoughness          = BumpRoughness;
        TG.HeightMultiplier       = HeightMultiplier;
        TG.Roughness              = Roughness;
        TG.terrain                = Terrain.activeTerrain;
        TG.waterplane             = GameObject.Find("Water");
        TG.ClipEdges              = ClipEdges;
        TerrainFoliage.waterLevel = WaterLevel;
        TG.editor = true;
        if (randomSeed)
        {
            TG.TerrainSeed = "" + (int)UnityEngine.Random.Range(0, int.MaxValue);
            seed           = TG.TerrainSeed;
        }
        else
        {
            TG.TerrainSeed = seed;
        }
        TG.makeHeightmap();
        generateTextures();
        generatePerson(TG);
        generateSun2();
        findCity(TG);
        TerrainFoliage.grass   = grass;
        TerrainFoliage.grass2  = grass;
        TerrainFoliage.BigTree = BigTree;
        TerrainFoliage.Tree    = Tree;
        TerrainFoliage.GenerateFoliage(dimensions.x);
        TerrainFoliage.GenerateGrass();
    }
Esempio n. 3
0
    public void OnGUI()
    {
        genClass.OnGUI();

        useTexturing = EditorGUILayout.BeginToggleGroup("Setup textures", useTexturing);

        if (useTexturing)
        {
            if (GUILayout.Button("Clear all textures"))
            {
                List <TTexture> textures = new List <TTexture>();
                TerrainTexturing.GenerateTexture(textures);
            }

            foreach (var texture in texClass)
            {
                texture.OnGUI();
            }

            if (texClass.Count > 0)
            {
                if (GUILayout.Button("Delete last"))
                {
                    texClass.RemoveAt(texClass.Count - 1);
                }
            }

            if (GUILayout.Button("Add texture"))
            {
                texClass.Add(new wbTexturing());
            }

            if (texClass.Count > 0 && texClass[texClass.Count - 1].texture != null)
            {
                if (GUILayout.Button("Assign new textures"))
                {
                    List <TTexture> textures = new List <TTexture>();
                    for (int i = 0; i < texClass.Count; i++)
                    {
                        TTexture TTex = new TTexture();
                        TTex.texture = texClass[i].texture;
                        //TTex.color = texClass[i].color;
                        TTex.useBump = texClass[i].useBump;
                        if (texClass[i].useBump)
                        {
                            TTex.bumpmap = texClass[i].bumpmap;
                        }
                        else
                        {
                            TTex.bumpmap = texClass[i].emptyBump;
                        }
                        TTex.tilesize    = texClass[i].tilesize;
                        TTex.index       = texClass[i].index;
                        TTex.heightCurve = texClass[i].heightCurve;
                        TTex.angleCurve  = texClass[i].angleCurve;
                        textures.Add(TTex);
                    }
                    TerrainTexturing.GenerateTexture(textures);
                }
            }
        }
        EditorGUILayout.EndToggleGroup();

        useFoliage = EditorGUILayout.BeginToggleGroup("Setup foliage", useFoliage);

        if (useFoliage)
        {
            waterCoast   = EditorGUILayout.FloatField("Tree distance from coast", waterCoast);
            maxSteepness = EditorGUILayout.FloatField("Max hill angle for trees", maxSteepness);

            if (GUILayout.Button("Generate trees"))
            {
                TerrainFoliage.maxSteepness = maxSteepness;
                if (GameObject.Find("Water"))
                {
                    TerrainFoliage.waterLevel = GameObject.Find("Water").transform.position.y + waterCoast;
                }
                else
                {
                    TerrainFoliage.waterLevel = 0.0f;
                }
                TerrainFoliage.GenerateFoliage();
            }

            if (GUILayout.Button("Remove trees"))
            {
                TerrainFoliage.ClearTrees();
            }

            grassDensity = EditorGUILayout.IntField("Grass density", grassDensity);

            if (GUILayout.Button("Generate grass"))
            {
                TerrainFoliage.GenerateGrass();
            }

            if (GUILayout.Button("Remove grass"))
            {
                TerrainFoliage.ClearGrass();
            }
        }

        EditorGUILayout.EndToggleGroup();
    }