Example #1
0
    public void DrawCaveMesh(CaveMesh caveMesh)
    {
        Mesh cMesh = new Mesh();

        cMesh.vertices  = caveMesh.vertices.ToArray();
        cMesh.triangles = caveMesh.triangles.ToArray();
        cMesh.uv        = caveMesh.uvs;
        cMesh.RecalculateNormals();
        caveMeshFilter.sharedMesh = cMesh;
        caveMeshRenderer.gameObject.SetActive(true);
        DestroyImmediate(caveMeshFilter.GetComponent <MeshCollider>());
        caveMeshFilter.gameObject.AddComponent <MeshCollider>();

        Mesh wMesh = new Mesh();

        wMesh.vertices  = caveMesh.wallCaveMesh.vertices.ToArray();
        wMesh.triangles = caveMesh.wallCaveMesh.triangles.ToArray();
        wMesh.uv        = caveMesh.wallCaveMesh.uvs;
        wMesh.RecalculateNormals();
        wallMeshFilter.sharedMesh = wMesh;
        wallMeshRenderer.gameObject.SetActive(true);
        DestroyImmediate(wallMeshFilter.GetComponent <MeshCollider>());
        wallMeshFilter.gameObject.AddComponent <MeshCollider>();

        Mesh gMesh = new Mesh();

        gMesh.vertices  = caveMesh.groundCaveMesh.vertices;
        gMesh.triangles = caveMesh.groundCaveMesh.triangles;
        gMesh.uv        = caveMesh.groundCaveMesh.uvs;
        gMesh.RecalculateNormals();
        groundMeshFilter.sharedMesh = gMesh;
        groundMeshRenderer.gameObject.SetActive(true);
        DestroyImmediate(groundMeshFilter.GetComponent <MeshCollider>());
        groundMeshFilter.gameObject.AddComponent <MeshCollider>();
    }
Example #2
0
    public void convertToMeshes(OIGrid grid)
    {
        int wallHeight = _behavior._wallHeight;
        int seed       = _behavior._seed;

        IXHeightMap ceilHeight;

        if (_behavior._ceilHeightVariation == 0)
        {
            ceilHeight = new XFlatHeightMap(wallHeight);
        }
        else
        {
            int ceilMinHeight = wallHeight;
            int ceilMaxHeight = wallHeight + _behavior._ceilHeightVariation;
            ceilHeight = new XPerlinHeightMap(ceilMinHeight, ceilMaxHeight, seed);
        }


        CaveMeshFactory ms     = new CaveMeshFactory(ceilHeight);
        CaveMesh        result = ms.create(grid, wallHeight);

        _behavior._ceilMeshFilter.mesh = result.map;

        _behavior._wallMeshFilter.mesh = result.wall;
        _behavior._wallMeshFilter.gameObject.GetComponent <MeshCollider>().sharedMesh = result.wall;

        _behavior._floorMeshFilter.mesh = result.floor;
        _behavior._floorMeshFilter.gameObject.GetComponent <MeshCollider>().sharedMesh = result.floor;
    }
Example #3
0
    public void DrawMapInEditor()
    {
        caveMesh = new CaveMesh(squareSize, caveSettings);

        DrawCaveMesh(caveMesh);
    }