示例#1
0
    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;
        }
    }
示例#2
0
    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
        };
    }
示例#3
0
    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);
        }
    }
示例#4
0
    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();
    }