コード例 #1
0
    public void PaintHeightmap(global::TerrainData terrainData, Vector3 worldPostion)
    {
        this.terrainData = terrainData;
        int num   = Mathf.CeilToInt(worldPostion.x + (float)GameScene.mainScene.terrainConfig.sceneWidth * 0.5f);
        int num2  = Mathf.CeilToInt(worldPostion.z + (float)GameScene.mainScene.terrainConfig.sceneHeight * 0.5f);
        int num3  = this.size / 2;
        int num4  = this.size % 2;
        int num5  = Mathf.Clamp(num - num3, 0, this.terrainData.heightmapResolution);
        int num6  = Mathf.Clamp(num2 - num3, 0, this.terrainData.heightmapResolution);
        int num7  = Mathf.Clamp(num + num3 + num4, 0, this.terrainData.heightmapResolution);
        int num8  = Mathf.Clamp(num2 + num3 + num4, 0, this.terrainData.heightmapResolution);
        int num9  = num7 - num5;
        int num10 = num8 - num6;

        float[,] heights = this.terrainData.GetHeights(num5, num6, num9, num10);
        for (int i = 0; i < num10; i++)
        {
            for (int j = 0; j < num9; j++)
            {
                int   ix          = num5 + j - (num - num3);
                int   iy          = num6 + i - (num2 - num3);
                float strengthInt = this.GetStrengthInt(ix, iy);
                float num11       = heights[i, j];
                num11         = this.ApplyBrush(num11, strengthInt * this.strengthen, j + num5, i + num6);
                heights[i, j] = num11;
            }
        }
        terrainData.SetHeights(num5, num6, heights);
    }
コード例 #2
0
    public void CopyTo(global::TerrainData target)
    {
        float num = 0.53125f;

        for (int i = 0; i < 32; i++)
        {
            for (int j = 0; j < 32; j++)
            {
                int num2 = (int)((float)i * num);
                int num3 = (int)((float)j * num);
                this.terrainData.heightmap[j, i] = this.vertices[num3 * 17 + num2].y;
            }
        }
        int xBase = (int)base.transform.position.x - 16 + this.terrainConfig.sceneWidth / 2;
        int yBase = (int)base.transform.position.z - 16 + this.terrainConfig.sceneHeight / 2;

        target.SetHeights(xBase, yBase, this.terrainData.heightmap);
    }