Exemplo n.º 1
0
    private void CreateHallways()
    {
        List <Rect> roomRects = GetRoomRects();
        AStarGrid   grid      = new AStarGrid(roomRects, positionMeta);

        debugData.Grid = grid.Grid;
        HallwayMeshGenerator meshGenerator = new HallwayMeshGenerator(grid, hallwayTiling);

        foreach (HallwayMeta hw in hallwayMeta)
        {
            HallwayAStar  routing = new HallwayAStar(hw.StartDoor, hw.EndDoor, grid);
            List <Square> path    = routing.BuildPath();
            debugData.AddPath(path);
            AddLevelMetadataPath(path);
            meshGenerator.AddPath(path);
        }
        Mesh       mesh     = meshGenerator.GenerateMesh(true);
        GameObject hallways = new GameObject("Hallways");

        hallways.isStatic = setIsStatic;
        hallways.tag      = "ChunkInstance";
        hallways.layer    = LayerMask.NameToLayer("LevelGeometry");
        MeshFilter meshFilter = hallways.AddComponent <MeshFilter> ();

        meshFilter.sharedMesh = mesh;
        MeshRenderer meshRenderer = hallways.AddComponent <MeshRenderer> ();

        meshRenderer.sharedMaterials = hallwayMaterials;
        hallways.AddComponent <MeshCollider> ();
        FillHallways(grid, hallways);
    }