public void TestDifferenceArrays() { ThreeDimensionalArray tda = new ThreeDimensionalArray(); var expected = false; int[,,] mass1 = tda.GenerationArray(); int[,,] mass2 = tda.GenerationArray(); int[,,] actual = tda.DifferenceArrays(mass1, mass2); for (int i = 0; i < actual.GetLength(0); i++) { for (int j = 0; j < actual.GetLength(1); j++) { for (int k = 0; k < actual.GetLength(2); k++) { if (actual[i, j, k] == mass1[i, j, k] - mass2[i, j, k]) { expected = true; } } } } Assert.IsTrue(expected); }
public void TestMultiplicationArrays() { ThreeDimensionalArray tda = new ThreeDimensionalArray(); var num = 3; int[,,] mass1 = tda.GenerationArray(); var expected = false; int[,,] actual = tda.MultiplicationArray(mass1, num); for (int i = 0; i < actual.GetLength(0); i++) { for (int j = 0; j < actual.GetLength(1); j++) { for (int k = 0; k < actual.GetLength(2); k++) { if (actual[i, j, k] == mass1[i, j, k] * num) { expected = true; } } } } Assert.IsTrue(expected); }
public void TestSumArrays() { ThreeDimensionalArray tda = new ThreeDimensionalArray(); //Первый массив int[,,] mass1 = tda.GenerationArray(); //Второй массив int[,,] mass2 = tda.GenerationArray(); //Резульатат сложения var expected = false; int[,,] actual = tda.SumArray(mass1, mass2); for (int i = 0; i < actual.GetLength(0); i++) { for (int j = 0; j < actual.GetLength(1); j++) { for (int k = 0; k < actual.GetLength(2); k++) { if (actual[i, j, k] == mass1[i, j, k] + mass2[i, j, k]) { expected = true; } } } } Assert.IsTrue(expected); }
public void TestGenerationArray() { var expected = false; ThreeDimensionalArray tda = new ThreeDimensionalArray(); var actual = tda.GenerationArray(); for (int i = 0; i < actual.GetLength(0); i++) { for (int j = 0; j < actual.GetLength(1); j++) { for (int k = 0; k < actual.GetLength(2); k++) { expected = true; } } } Assert.IsTrue(expected); }
public void TestComparisonArrays() { ThreeDimensionalArray tda = new ThreeDimensionalArray(); var sum = 0; int[,,] mass1 = tda.GenerationArray(); var actual = tda.ComparisonArrays(mass1); for (int i = 0; i < 5; i++) { for (int j = 0; j < 5; j++) { for (int k = 0; k < 5; k++) { sum += mass1[i, j, k]; } } } Assert.AreEqual(sum, actual); }
void Start() { Blocks = new ThreeDimensionalArray <GameObject>(xSize, heightModifier, zSize); for (float x = 0; x < xSize; x++) { for (float z = 0; z < zSize; z++) { float noiseX = x / xSize; float noiseZ = z / zSize; float noise = Mathf.PerlinNoise(noiseX, noiseZ); int h = (int)(noise * heightModifier); if (h == 0) { h = 1; } for (int i = 0; i < h; i++) { GameObject instantiated = Instantiate(DirtBlock, new Vector3(x, i, z), Quaternion.identity, transform); Blocks[(int)x, h - 1, (int)z] = instantiated; } } } var meshFilters = GetComponentsInChildren <MeshFilter>(); var combine = new CombineInstance[meshFilters.Length - 1]; int index = 0; for (int a = 0; a < meshFilters.Length; a++) { if (meshFilters[a].sharedMesh == null) { continue; } combine[index].mesh = meshFilters[a].sharedMesh; combine[index++].transform = meshFilters[a].transform.localToWorldMatrix; meshFilters[a].gameObject.SetActive(false); } GetComponent <MeshFilter>().mesh = new Mesh(); GetComponent <MeshFilter>().mesh.CombineMeshes(combine); //MeshFilter baseMeshFilter = gameObject.AddComponent<MeshFilter>(); //Mesh newMesh = new Mesh(); //newMesh.Clear(); //baseMeshFilter.mesh = newMesh; //List<Vector3> vertices = new List<Vector3>(); //// We loop and check if any block is to our left //// If there isn't, and our own block isn't null, we add a bottom back left corner //// If we are the last block in the 1D array, we add our bottom front left corner //for (int x = 0; x < Blocks.GetLength(0); x++) //{ // for (int y = 0; y < Blocks.GetLength(1); y++) // { // for (int z = 0; z < Blocks.GetLength(2); z++) // { // if (Blocks.ElementExists(x, y, z)) // { // for (int i = 0; i < Corners.Length; i++) // { // Vector3 vertex = new Vector3(x, y, z) + Corners[i]; // vertices.Add(vertex); // } // } // } // } //} //newMesh.vertices = vertices.ToArray(); //int[] triangles = { // 0, 2, 1, //face front // 0, 3, 2, // 2, 3, 4, //face top // 2, 4, 5, // 1, 2, 5, //face right // 1, 5, 6, // 0, 7, 4, //face left // 0, 4, 3, // 5, 4, 7, //face back // 5, 7, 6, // 0, 6, 7, //face bottom // 0, 1, 6 //}; //int[] plusTris = new int[triangles.Length * 2]; //for (int i = 0; i < plusTris.Length; i++) //{ // if (i < triangles.Length) // plusTris[i] = triangles[i]; // else // plusTris[i] = triangles[i / 2] + 8; //} //newMesh.triangles = plusTris; //newMesh.Optimize(); //newMesh.RecalculateNormals(); }