예제 #1
0
    protected void CreateHexTileAt(HexTile hexTile, int x, int y, HexGrid grid, int owner)
    {
        var gridPos  = new Vector2(x, y);
        var worldPos = grid.ToPixel(gridPos);

        hexTile.Grid                   = grid;
        hexTile.Pos                    = gridPos;
        hexTile.Owner                  = owner;
        hexTile.Accessibility          = TileAccessibility.Accessible;
        hexTile.Obj.transform.position = worldPos;
        hexTile.Obj.transform.parent   = grid.TilesObj.transform;
        hexTile.Obj.name               = "Tile(" + x + ", " + y + ")";

        hexTile.HexCollider      = hexTile.Obj.AddComponent <HexTileCollider>();
        hexTile.HexCollider.Tile = hexTile;
        hexTile.HexCollider.MCollider.sharedMesh = _hexTileMesh;
        hexTile.HexCollider.MCollider.convex     = true;

        Material[] materials = new Material[2];
        materials[0]        = HexTileBaseMats[0];
        materials[1]        = HexTileSkirtMats[0];
        hexTile.View        = hexTile.CreateView(_hexTileMesh, materials, "View", "Grid");
        materials           = new Material[1];
        materials[0]        = HexTileOverlayMats[0];
        hexTile.Overlay     = hexTile.CreateView(_hexTileOverLayMesh, materials, "Overlay", "Grid");
        materials           = new Material[1];
        materials[0]        = HexGridOverlayMat;
        hexTile.GridOverlay = hexTile.CreateView(_hexTileOverLayMesh, materials, "Grid", "Grid");

        grid.Tiles.Add(gridPos, hexTile);
    }