SetNeighbors() private method

private SetNeighbors ( Terrain left, Terrain top, Terrain right, Terrain bottom ) : void
left Terrain
top Terrain
right Terrain
bottom Terrain
return void
コード例 #1
0
ファイル: DupeTerrain.cs プロジェクト: TheCraiggers/MoonKrieg
    // Use this for initialization
    void Start()
    {
        R = Instantiate(MainTerrain) as Terrain;
        R.transform.position = new Vector3(MainTerrain.terrainData.size.x,0,0);
        L = Instantiate(MainTerrain) as Terrain;
        L.transform.position = new Vector3(-MainTerrain.terrainData.size.x,0,0);
        T = Instantiate(MainTerrain) as Terrain;
        T.transform.position = new Vector3(0,0,MainTerrain.terrainData.size.z);
        B = Instantiate(MainTerrain) as Terrain;
        B.transform.position = new Vector3(0,0,-MainTerrain.terrainData.size.z);

        TR = Instantiate(MainTerrain) as Terrain;
        TR.transform.position = new Vector3(MainTerrain.terrainData.size.x,0,MainTerrain.terrainData.size.z);
        BR = Instantiate(MainTerrain) as Terrain;
        BR.transform.position = new Vector3(MainTerrain.terrainData.size.x,0,-MainTerrain.terrainData.size.z);
        TL = Instantiate(MainTerrain) as Terrain;
        TL.transform.position = new Vector3(-MainTerrain.terrainData.size.x,0,MainTerrain.terrainData.size.z);
        BL = Instantiate(MainTerrain) as Terrain;
        BL.transform.position = new Vector3(-MainTerrain.terrainData.size.x,0,-MainTerrain.terrainData.size.z);

        TL.SetNeighbors(null,null,T,L);
        T.SetNeighbors(TL,null,TR,MainTerrain);
        TR.SetNeighbors(T,null,null,R);
        L.SetNeighbors(null,TL,MainTerrain,BL);
        MainTerrain.SetNeighbors(L,T,R,B);
        R.SetNeighbors(MainTerrain,TR,null,BR);
        BL.SetNeighbors(null,L,B,null);
        B.SetNeighbors(BL,MainTerrain,BR,null);
        BR.SetNeighbors(B,R,null,null);
    }
コード例 #2
0
ファイル: Generator.cs プロジェクト: zipOrg/CemeteryShoeter
    public IEnumerator GenerateTerrainBaseShapeCoroutine(Terrain terrain, float xOffset, int numberOfHills, int maxRadius, int minRadius)
    {
        print("Generuje");
        TerrainData data = terrain.terrainData;
        float[,] heightMap = new float[terrain.terrainData.heightmapWidth, terrain.terrainData.heightmapHeight];
        float xVal = 0.0f;
        for (int i = 0; i < terrain.terrainData.heightmapWidth; i++) {
            for (int j = 0; j < terrain.terrainData.heightmapHeight; j++) {
                xVal = ((float)i / (float)data.heightmapWidth) * perlinNoiseDensity;
                float yVal = ((float)j / (float)data.heightmapHeight) * perlinNoiseDensity;
                heightMap[i, j] = Mathf.PerlinNoise(xVal + xOffset, yVal) / perlinNoiseDivider;

            }

        }
        nextOffset += xVal;

        for (int i = 0; i < numberOfHills; i++) {
            int radius = Random.Range(minRadius, maxRadius);
            int randX = Random.Range(radius, data.heightmapWidth - radius);
            int randY = Random.Range(radius, data.heightmapHeight - radius);
            heightMap = stampHillOnHeighmap(randX, randY, radius, heightMap);
        }

        terrain.terrainData.SetHeights(0, 0, heightMap);

        if (lastShapedTerrain) {
            lastShapedTerrain.SetNeighbors(null, terrain, null, null);
            terrain.SetNeighbors(null, null, null, lastShapedTerrain);
        }

        lastShapedTerrain = terrain;
        print("Wygenerowane");
        yield return null;
    }