Esempio n. 1
0
    private void CubeSpawner()
    {
        float xOffset = 1f;
        float yOffset = 0.15f;
        float zOffset = -4f;

        int modIndex   = 0;
        int modCounter = 0;

        for (int i = 0; i < blocksFromImage.Count; i++)
        {
            if (i % 10 == 0)
            {
                modCounter++;
            }

            modIndex   = i % 10;
            modCounter = modCounter % 10;

            StartCube tmpCube = Instantiate(startCube, startCubeTransform);

            tmpCube.GetComponent <MeshRenderer>().enabled = false;
            tmpCube.transform.position = new Vector3(xOffset - modIndex * 0.35f, yOffset + modCounter * 0.5f, zOffset);
            startedCubes.Add(tmpCube);
        }
    }
Esempio n. 2
0
 public List <Waypoint> GetPath()
 {
     if (path.Count == 0)
     {
         LoadBlocks();
         StartCube.SetTopColor(Color.green);
         EndCube.SetTopColor(Color.red);
         BreadthFirstSearch();
         CreatePath();
     }
     return(path);
 }
Esempio n. 3
0
    void CreateBlocks()
    {
        switch (startCubeShapes)
        {
        case 1:
            float xOffset = 1f;
            float yOffset = 0.15f;
            float zOffset = -4f;

            int modIndex   = 0;
            int modCounter = 0;

            for (int i = 0; i < blocksFromImage.Count; i++)
            {
                if (i % 10 == 0)
                {
                    modCounter++;
                }

                modIndex   = i % 10;
                modCounter = modCounter % 10;

                StartCube tmpCube = Instantiate(startCube, startCubeTransform);
                tmpCube.GetComponent <Collider>().enabled = false;
                tmpCube.transform.position = new Vector3(xOffset - modIndex * 0.35f, yOffset + modCounter * 0.5f, zOffset);
                startedCubes2.Add(tmpCube);
            }
            break;

        case 2:

            int maxHeight = 9;
            for (int height = 0; height < maxHeight; height++)
            {
                int length = maxHeight - height;
                for (int x = -length; x <= length; x++)
                {
                    for (int z = -length; z <= length; z++)
                    {
                        if (Mathf.Abs(x) == length || Mathf.Abs(z) == length)
                        {
                            StartCube tmpCube2 = Instantiate(startCube, startCubeTransform);
                            tmpCube2.GetComponent <Collider>().enabled = false;
                            tmpCube2.transform.position = new Vector3(x * .305f, height * .305f, -4 - z * .305f);
                            startedCubes2.Add(tmpCube2);
                        }
                    }
                }
            }
            break;

        case 3:
            int   fillSize    = 10;
            float innerRadius = 3;
            float thickness   = 3;

            for (int i = -fillSize; i < fillSize; i++)
            {
                for (int j = -fillSize; j < fillSize; j++)
                {
                    for (int k = -fillSize; k < fillSize; k++)
                    {
                        Vector3 cubePosition  = new Vector3(i, j, k);
                        Vector3 cubeDirection = new Vector3(cubePosition.x, 0, cubePosition.z);
                        cubeDirection.Normalize();
                        Vector3 donutCenter = cubeDirection * (innerRadius + thickness);


                        if (Vector3.Distance(cubePosition, donutCenter) < thickness)
                        {
                            StartCube tmpCube3 = Instantiate(startCube, startCubeTransform);
                            tmpCube3.transform.position = new Vector3(i * .325f, (.3f * thickness) - .15f + j * .325f, -4 - k * .325f);
                            startedCubes2.Add(tmpCube3);
                        }
                    }
                }
            }
            break;
        }
    }