예제 #1
0
    /* Manage collisions/overlaps */

    void OnTriggerEnter(Collider other)
    {
        if (pickable)
        {
            // search for program index for event "onPickup"
            int i = programIndexFromEventName("onPickup");
            if (i != -1)               // if successfully found...
            {
                startProgram(i);       // start the program
                MasterControllerScript mcRef = GameObject.Find("MasterController").GetComponent <MasterControllerScript>();
                mcRef.registerPickedUpObject(this.name);
            }
        }

        if (!overlapEnabled)
        {
            return;
        }

        int j = programIndexFromEventName("onOverlap");

        if (j != -1)
        {
            startProgram(j);
        }
    }
예제 #2
0
    void OnTriggerEnter(Collider other)
    {
        // Only the player can pick up things and stuff...
        if (other.tag != "Player")
        {
            return;
        }
        if (other.name == "Main Camera")
        {
            return;
        }

        //Debug.Log ("<color=purple>" + other.name + " entered " + this.name + "</color>");

        if (pickable)
        {
            MasterControllerScript mcRef = GameObject.Find("MasterController").GetComponent <MasterControllerScript>();

            // search for program index for event "onPickup"
            int i = programIndexFromEventName("onPickup");
            if (i != -1)               // if successfully found...

            {
                startProgram(i);                 // start the program
            }

            if (FlameHeroClass > 0)               // if it is a flame, a little ad-hoc solution
            //string lvl = GameObject.Find("LevelController").GetComponent<LevelControllerScript>().locationName.Substring(0, 6);
            {
                string lvl = SceneManager.GetActiveScene().name;
                mcRef.getStorage().storeStringValue("CurrentLevelFlame", lvl);
                mcRef.getStorage().storeIntValue("CurrentFlameIndex", FlameHeroClass - 1);
                mcRef.getStorage().storeIntValue("QAHeroClass" + lvl + (FlameHeroClass - 1), FlameHeroClass - 1);               // a little ad-hoc solution
                // store flame related data in case we have to resurrect the flame
                mcRef.getStorage().storeStringValue("FlameResurrectionName" + lvl + (FlameHeroClass - 1), this.name);
                mcRef.getStorage().storeStringValue("FlameResurrectionLocation" + lvl + (FlameHeroClass - 1), lvl);
            }
            mcRef.registerPickedUpObject(this.name);
        }

        if (!interactEnabled)
        {
            return;
        }

        int j = programIndexFromEventName("onOverlap");

        if (j != -1)
        {
            startProgram(j);
        }
    }
예제 #3
0
 public void registerPickedUpObject(string name)
 {
     mcRef.registerPickedUpObject(name);
 }