Пример #1
0
    void Initialize()
    {
        m_ShapeGeneration = new ShapeGeneration(m_ShapeSettings);

        if (meshFilters == null || meshFilters.Length == 0)
        {
            meshFilters = new MeshFilter[6];
        }

        terrainFaces = new TerrainFace[6];

        Vector3[] directions = { Vector3.up, Vector3.down, Vector3.left, Vector3.right, Vector3.forward, Vector3.back };

        for (int i = 0; i < 6; i++)
        {
            if (meshFilters[i] == null)
            {
                GameObject meshObj = new GameObject("PlanetGenerateMesh");
                meshObj.transform.parent = transform;

                meshObj.AddComponent <MeshRenderer>().sharedMaterial = planetMaterial;
                meshFilters[i]            = meshObj.AddComponent <MeshFilter>();
                meshFilters[i].sharedMesh = new Mesh();
            }

            terrainFaces[i] = new TerrainFace(m_ShapeGeneration, meshFilters[i].sharedMesh, resolution, directions[i]);
        }
    }
Пример #2
0
 // Use this for initialization
 void Start()
 {
     for (int i = 0; i < InitialNumberOfKomorkas; i++)
     {
         var komorka = Instantiate(komorkaPrefab, new Vector3(Random.Range(-15, 15), Random.Range(0, 14), Random.Range(-2, 2)), Quaternion.identity);
         var map     = ShapeGeneration.CreateRandomShape();
         komorka.GetComponent <CellGeneratorController>().Init(map, false, true);
     }
 }
Пример #3
0
    public TerrainFace(ShapeGeneration shapeGeneration, Mesh mesh, int res, Vector3 locUp)
    {
        m_ShapeGeneration = shapeGeneration;

        m_Mesh     = mesh;
        resolution = res;
        localUp    = locUp;

        axisX = new Vector3(localUp.y, localUp.z, localUp.x);
        axisY = Vector3.Cross(localUp, axisX);
    }
Пример #4
0
    // Use this for initialization
    void Start()
    {
        var map = ShapeGeneration.CreateRandomShape();

        mutableMesh = new MutableMesh();

        SquareGrid grid = new SquareGrid(
            map.width * ShapeAnalizer.scale,
            map.height * ShapeAnalizer.scale,
            mutableMesh
            );

        shapeAnalizer = new ShapeAnalizer(map, grid);

        var meshFilter = gameObject.GetComponent <MeshFilter> ();

        Vector3[] vertices      = mutableMesh.GetVertexes().ToArray();
        float     tileAmount    = 0.5f;
        float     textureWidth  = ShapeAnalizer.scale * map.width;
        float     textureHeight = ShapeAnalizer.scale * map.height;

        Vector2[] uvs = new Vector2[vertices.Length];
        for (int i = 0; i < vertices.Length; i++)
        {
            float percentX = Mathf.InverseLerp(0, textureWidth, vertices[i].x) * tileAmount;
            float percentY = Mathf.InverseLerp(0, textureHeight, vertices[i].y) * tileAmount;
            uvs[i] = new Vector2(percentX, percentY);
        }
        var mesh = new Mesh()
        {
            vertices  = vertices,
            triangles = mutableMesh.GetTriangles().ToArray(),
            uv        = uvs,
            uv2       = uvs,
        };

        mesh.RecalculateTangents();
        mesh.RecalculateNormals();
        mesh.RecalculateBounds();
        meshFilter.sharedMesh = mesh;

        var renderer = gameObject.GetComponent <MeshRenderer> ();

        renderer.material.color = Random.ColorHSV(0f, 1f, 1f, 1f, 0.5f, 1f);

        var pupil = Instantiate(eyePrefab, shapeAnalizer.eye.center, Quaternion.identity, transform);

        pupil.transform.localScale = new Vector3(2.0f, 2.0f, 0);

        shapeAnalizer.eye.SetPupil(pupil, 0.12f);
        shapeAnalizer.eye.MovePupil(Vector3.zero);
    }
Пример #5
0
 void GenerateKomorkas()
 {
     for (int i = 0; i < Space.Width; i++)
     {
         for (int j = 0; j < Space.Height; j++)
         {
             for (int z = 0; z < Space.Depth; z++)
             {
                 if (Random.value < 0.05f)
                 {
                     var komorka = Instantiate(komorkaPrefab, pixelToWorldPosition(new Vec3(i, j, z)), Quaternion.identity);
                     var map     = ShapeGeneration.CreateRandomShape();
                     komorka.GetComponent <CellGeneratorController> ().Init(map, false, false);
                 }
             }
         }
     }
 }