Ejemplo n.º 1
0
    //redraws chunk dependant on the chunk number
    public void OnTileTypeChange(int chunkNumber)
    {
        //update chunk mesh
        GameObject     chunk       = GameObject.Find("CHUNK " + chunkNumber);
        MeshFilter     chunkFilter = chunk.GetComponent <MeshFilter> ();
        Mesh           chunkMesh   = chunkFilter.mesh;
        MeshGameObject meshScript  = chunk.GetComponent <MeshGameObject> ();

        data.RewriteUV(meshScript.X, meshScript.Y, meshScript.Width, meshScript.Height);
        chunkMesh.uv = data.UVs.ToArray();
    }
Ejemplo n.º 2
0
        public void MainThreadUpdate(LargeSketch sketch, object tag)
        {
            var mgos  = sketch.mgos;
            int index = renderer_index;

            while (!(index < mgos.Count))
            {
                mgos.Add(null);
            }
            Debug.Assert(mgos[index] == null);
            mgos[index] = new MeshGameObject(sketch, this, tag);
        }
Ejemplo n.º 3
0
    //create mesh from MeshData, mountain layer is true
    void GenerateMountainLayer(int x, int y, int width, int height)
    {
        //create mesh at coords of 100 x 100 tiles
        MountainData = new MeshData(x, y, width, height, true);

        //new chunk gameobject, child of world, with id
        GameObject meshGO = new GameObject("MountainLayer " + meshGOMountainvalue);

        MeshGameObject mountainMeshScript = meshGO.AddComponent <MeshGameObject> ();

        //The script on the mountain mesh is aware of its coords and width/height
        mountainMeshScript.X      = x;
        mountainMeshScript.Y      = y;
        mountainMeshScript.Width  = width;
        mountainMeshScript.Height = height;

        meshGO.transform.SetParent(this.transform);

        //add a mesh filter and renderer
        MeshFilter   filter = meshGO.AddComponent <MeshFilter> ();
        MeshRenderer render = meshGO.AddComponent <MeshRenderer> ();

        render.material = material;

        //render the mountains layer infront of everything else
        render.sortingOrder = 1;
        Mesh mesh = filter.mesh;

        //create vertices, triangles and uvs from meshdata
        mesh.vertices  = MountainData.vertices.ToArray();
        mesh.triangles = MountainData.triangles.ToArray();

        mesh.uv = MountainData.UVs.ToArray();

        //each tile is told its mesh's value
        for (int i = x; i < x + width; i++)
        {
            for (int j = y; j < y + height; j++)
            {
                tiles [i, j].MountainChunkNumber = meshGOMountainvalue;
            }
        }

        meshGOMountainvalue++;
    }
Ejemplo n.º 4
0
    //create mesh from MeshData
    void GenerateTilesLayer(int x, int y, int width, int height)
    {
        //create mesh of squares and using tiles[,] gets the right uvs etc, using GetTileAt()
        data = new MeshData(x, y, width, height);

        //new chunk gameobject, child of world, with id
        GameObject meshGO = new GameObject("CHUNK " + meshGOvalue);

        meshGO.transform.SetParent(this.transform);

        //adds mesh script to GameObjects, the mesh is therefore aware of certain variables
        MeshGameObject meshScript = meshGO.AddComponent <MeshGameObject> ();

        meshScript.X      = x;
        meshScript.Y      = y;
        meshScript.Width  = width;
        meshScript.Height = height;

        //add a mesh filter and renderer
        MeshFilter   filter = meshGO.AddComponent <MeshFilter> ();
        MeshRenderer render = meshGO.AddComponent <MeshRenderer> ();

        render.material = material;

        Mesh mesh = filter.mesh;

        //create vertices, triangles and uvs from meshdata
        mesh.vertices  = data.vertices.ToArray();
        mesh.triangles = data.triangles.ToArray();

        mesh.uv = data.UVs.ToArray();

        for (int i = x; i < x + width; i++)
        {
            for (int j = y; j < y + height; j++)
            {
                tiles [i, j].ChunkNumber = meshGOvalue;
            }
        }
        meshGOvalue++;
    }