void CheckIfIAmInsideAnyVoid() { iAmInsideThisVoid_test = false; foreach (Void_Cn voidEntry in voidsAllInfo) { if (voidEntry.boundingQbits_convexHullOrder_allInfo != null) { if (voidEntry.isOpen == true) { iAmInsideThisVoid_test = CheckIfIAmInsideThisVoid(voidEntry.boundingQbits_convexHullOrder_positions, new Vector2(this.transform.position.x, this.transform.position.z)); if (iAmInsideThisVoid_test == true && iAmInsideThisVoid_id == -1) { iAmInsideThisVoid_id = voidEntry.id; // report hit ONCE until exit void and re-enter if (report_hit == true) { VoidMesh voidMeshScript = GameObject.Find("void_" + iAmInsideThisVoid_id).GetComponent <VoidMesh>(); voidMeshScript.aud_static_state = "igniter event"; voidMeshScript.aud_hitby_igniter = true; voidMeshScript.hitby_voidIgniterType = self_voidIgniterType; report_hit = false; } break; } } } } if (iAmInsideThisVoid_test == false) { iAmInsideThisVoid_id = -1; report_hit = true; } }
void SpawnVoid(int newVoidId) { qbitsBoundingMe = new List <BoundingQbit_AllInfo>(); foundBoundingQbitsCounter = 0; foreach (GameObject qbit in qbitsAll_obj) { if (foundBoundingQbitsCounter == 8) { break; } foundABoundingQbit = false; Vector2 thisQbitPosition = new Vector2(qbit.transform.position.x, qbit.transform.position.z); for (int t = 0; t < testVoidTriangles.Count; t++) { if (foundABoundingQbit == true) { break; } for (int p = 0; p < 3; p++) { if (thisQbitPosition == testVoidTriangles[t].sites[p].Coord) { bool qbitAddedAlready = false; QbitMovement qbitMovementScript = qbit.GetComponent <QbitMovement>(); int thisQbitId = qbitMovementScript.self_id; foreach (BoundingQbit_AllInfo qbitEntry in qbitsBoundingMe) { if (qbitEntry.id == thisQbitId) { qbitAddedAlready = true; break; } } if (qbitAddedAlready == false) { qbitsBoundingMe.Add(new BoundingQbit_AllInfo { id = thisQbitId, transform = qbit.transform, qbitMovementScript = qbitMovementScript }); foundABoundingQbit = true; foundBoundingQbitsCounter++; break; } } } } } // spawn and set self_voidAllInfo of the spawned GO GameObject goVoid = Instantiate(voidMeshPrefab, new Vector3(0, .01f, 0), Quaternion.identity); goVoid.transform.SetParent(voidContainer, true); goVoid.name = "void_" + newVoidId; VoidMesh voidMeshScript = goVoid.GetComponent <VoidMesh>(); voidMeshScript.self_voidAllInfo = new Void_Cn { id = newVoidId, initialTrianglesFromDelaunay = testVoidTriangles, boundingQbits_allInfo = qbitsBoundingMe, area = testVoidArea, centroid = thisTestVoidCentroid }; }
void Update() { voidGOsAll = GameObject.FindGameObjectsWithTag("void"); voidsAllInfo = new List <Void_Cn>(); foreach (GameObject voidGO in voidGOsAll) { VoidMesh voidMeshScript = voidGO.GetComponent <VoidMesh>(); voidsAllInfo.Add(voidMeshScript.self_voidAllInfo); } }
void Start() { voidMeshScript = GetComponent <VoidMesh>(); particleSystem1 = GetComponent <ParticleSystem>(); shapeModule = particleSystem1.shape; mainModule = particleSystem1.main; emissionModule = particleSystem1.emission; rendererModule = GetComponent <ParticleSystemRenderer>(); self_id = voidMeshScript.self_id; globalEvolution_script = GameObject.Find("globalEvolution").GetComponent <GlobalEvolution>(); voidsAllInfo_script = GameObject.Find("voidsAllInfo").GetComponent <VoidsAllInfo>(); oscOutScript = GameObject.Find("osc").GetComponent <OscOut>(); mixer = new Mixer(); MixerValues_Init(); }