Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System.Collections;
- using System.Collections.Generic;
- using UnityEngine;
- public class Voxelizer : MonoBehaviour {
- public int xSlices = 5;
- public int ySlices = 5;
- public int zSlices = 5;
- public GameObject Cube;
- void Start () {
- Explode ();
- print ("Done");
- }
- void Explode() {
- var mesh = Cube.GetComponent<MeshRenderer> ();
- var newCube = new GameObject ();
- newCube.transform.position = Cube.transform.position;
- newCube.transform.rotation = Cube.transform.rotation;
- newCube.transform.localScale = Cube.transform.localScale;
- for (var i = 0; i < xSlices; ++i) {
- for (var j = 0; j < ySlices; ++j) {
- for (var k = 0; k < zSlices; ++k) {
- var smallCube = Instantiate(Cube, newCube.transform);
- var x = Cube.transform.position.x;
- var y = Cube.transform.position.y;
- var z = Cube.transform.position.z;
- var sliceSizeX = 2 * mesh.bounds.extents.x / xSlices + Mathf.Epsilon;
- x = x - mesh.bounds.extents.x + sliceSizeX / 2 + i * sliceSizeX;
- var sliceSizeY = 2 * mesh.bounds.extents.y / ySlices + Mathf.Epsilon;
- y = y - mesh.bounds.extents.y + sliceSizeY / 2 + j * sliceSizeY;
- var sliceSizeZ = 2 * mesh.bounds.extents.z / zSlices + Mathf.Epsilon;
- z = z - mesh.bounds.extents.z + sliceSizeZ / 2 + k * sliceSizeZ;
- smallCube.transform.position = new Vector3(x, y, z);
- smallCube.transform.localScale = new Vector3(1.0f/xSlices, 1.0f/ySlices, 1.0f/zSlices);
- smallCube.transform.localRotation = Quaternion.identity;
- }
- }
- }
- Cube.SetActive (false);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement