public CubeParticleVox(CubeLedSeq led, Bounds b, HashSet <IParticleObject> pos) : base(led, b, pos) { cubeledseq = led; LEDX = led.LEDX; LEDY = led.LEDY; LEDZ = led.LEDZ; }
public CubeMeshVox(CubeLedSeq seq, Bounds b, HashSet <IMeshObject> objs) : base(seq, b, objs) { cubeledseq = seq; LEDX = cubeledseq.LEDX; LEDY = cubeledseq.LEDY; LEDZ = cubeledseq.LEDZ; }
static LedSeq validHeader(Stream sw) { uint[] header = new uint[HEADERNUM]; byte[] buf = new byte[header.Length * sizeof(uint)]; sw.Read(buf, 0, buf.Length); Buffer.BlockCopy(buf, 0, header, 0, buf.Length); if (header[(int)HeaderItem.Version] != version) { Debug.LogError("the ledseq version mismatch " + header[(int)HeaderItem.Version]); return(null); } LedSeq ledseq = null; switch (header[(int)HeaderItem.Shape]) { case (uint)Shape.Cube: ledseq = new CubeLedSeq(); break; case (uint)Shape.Cylinder: ledseq = new CylinderLeqSeq(); break; default: return(null); } Buffer.BlockCopy(header, 0, ledseq.header, 0, header.Length * sizeof(uint)); buf = new byte[ledseq.param1.Length * sizeof(uint)]; sw.Read(buf, 0, buf.Length); Buffer.BlockCopy(buf, 0, ledseq.param1, 0, buf.Length); buf = new byte[ledseq.param2.Length * sizeof(float)]; sw.Read(buf, 0, buf.Length); Buffer.BlockCopy(buf, 0, ledseq.param2, 0, buf.Length); return(ledseq); }
public CubeMatrix(CubeLedSeq ledseq) : base(ledseq) { origin = new Vector3(100f, 0, 500 - ledseq.LEDZ / 2 * step); cubeledseq = ledseq; LEDX = ledseq.LEDX; LEDY = ledseq.LEDY; LEDZ = ledseq.LEDZ; ledcubes = new GameObject[TOTAL]; ledmats = new Material[TOTAL]; GameObject go = null; bounds = new Bounds(origin, new Vector3()); parent = new GameObject("CubeMatrix"); for (int i = 0; i < LEDX; i++) { for (int j = 0; j < LEDY; j++) { for (int k = 0; k < LEDZ; k++) { go = GameObject.CreatePrimitive(PrimitiveType.Cube); go.transform.position = new Vector3(i * step, j * step, k * step) + origin; go.transform.localScale = new Vector3(step, step, step); go.SetActive(false); go.transform.parent = parent.transform; bounds.Encapsulate(new Vector3(i * step, j * step, k * step) + origin); ledmats[ledseq.getLedIdx(i, j, k)] = go.GetComponent <MeshRenderer>().material; ledcubes[ledseq.getLedIdx(i, j, k)] = go; } } } }
public CubeLedMatrix(CubeLedSeq ledseq) : base(ledseq) { origin = new Vector3(100f, 0, 500 - ledseq.LEDZ / 2 * step); cubeledseq = ledseq; LEDX = ledseq.LEDX; LEDY = ledseq.LEDY; LEDZ = ledseq.LEDZ; UnityEngine.Object o = Resources.Load("sampleled"); thecube = (GameObject)GameObject.Instantiate(o, Vector3.zero, Quaternion.identity); Material themat = thecube.GetComponent <MeshRenderer>().material; ledcubes = new GameObject[TOTAL]; ledmats = new Material[TOTAL]; parent = new GameObject("CubeLedPillar"); Material transmat = (Material)Resources.Load("transmat", typeof(Material)); transmat.color = new Color(143f / 255f, 143f / 255f, 143f / 255f, 50 / 255f); GameObject go = null; for (int i = 0; i < LEDX; i++) { for (int k = 0; k < LEDZ; k++) { go = GameObject.CreatePrimitive(PrimitiveType.Cylinder); go.transform.position = new Vector3(i * step, 0, k * step) + new Vector3(0f, step * LEDY / 2, 0f) + origin; go.transform.parent = parent.transform; go.transform.localScale = new Vector3(1f, step * LEDY / 2, 0.2f); go.GetComponent <MeshRenderer>().material = new Material(transmat); } } GameObject top = GameObject.CreatePrimitive(PrimitiveType.Cube); top.name = "cubetop"; top.transform.localScale = new Vector3(LEDX * step * 1.1f, 2f, LEDZ * step * 1.1f); top.transform.position = new Vector3(LEDX / 2 * step, step * LEDY * 1f, LEDZ / 2 * step) + origin; top.GetComponent <MeshRenderer>().material = new Material(Shader.Find("Diffuse")); bounds = new Bounds(origin, new Vector3()); parent = new GameObject("CubeLedMatrix"); GameObject l = GameObject.Find("plight"); for (int i = 0; i < LEDX; i++) { for (int j = 0; j < LEDY; j++) { for (int k = 0; k < LEDZ; k++) { go = GameObject.CreatePrimitive(PrimitiveType.Cube); go.transform.position = new Vector3(i * step, j * step, k * step) + origin; go.SetActive(false); go.transform.parent = parent.transform; bounds.Encapsulate(new Vector3(i * step, j * step, k * step) + origin); ledmats[ledseq.getLedIdx(i, j, k)] = go.GetComponent <MeshRenderer>().material = new Material(themat); ledmats[ledseq.getLedIdx(i, j, k)].SetVector("_MKGlowColor", new Vector4(1f, 1f, 1f, 1f)); ledcubes[ledseq.getLedIdx(i, j, k)] = go; if (reflect) { GameObject ll = GameObject.Instantiate(l); ll.transform.position = go.transform.position; ll.transform.parent = go.transform; } } } } }