コード例 #1
0
    void OnTriggerExit(Collider other)
    {
        rnz = other.gameObject.GetComponent <ReverbNodeZone> ();
        zonesCurrentlyInsideOf.Remove(rnz);

        /*if (rnz.linkedZones!=null) {
         *      foreach (var zone in zonesCurrentlyInsideOf) {
         *                      if (rnz.linkedZones.Contains(zone)) {
         *                              //do nothing
         *                      } else {
         *                      foreach (var node in rnz.nodeList) {
         *                              activeNodes.Remove (node);
         *              }
         *              }
         *      }
         * } else {
         * //	*///foreach (var node in rnz.nodeList) {
        //activeNodes.Remove (node);
        activeNodes = zonesCurrentlyInsideOf[0].nodeList;



        targetController.nodes = activeNodes.ToArray();
        if (zonesCurrentlyInsideOf.Count == 1)
        {
            playerIsInside = false;
        }

        /*if (activeNodes.Count == 0) {
         *      activeNodes.AddRange (rnz.associatedNodes);
         * }*/

        //this.transform.position+= Vector3.zero; //retrigger overlapping trigger colliders?
    }
コード例 #2
0
    /*void OnTriggerStay(Collider other){
     *      Debug.Log ("triggerstay");
     *      rnz = other.gameObject.GetComponent<ReverbNodeZone> ();
     *      //activeNodes = new GameObject[rnz.nodeList.Count];
     *      activeNodes = rnz.nodeList;
     * }*/
    void OnTriggerEnter(Collider other)
    {
        rnz = other.gameObject.GetComponent <ReverbNodeZone> ();
        zonesCurrentlyInsideOf.Insert(0, rnz);
        playerIsInside  = rnz.inside;
        playerIsOutside = rnz.outside;
        if (rnz.isExclusive)
        {
            activeNodes = zonesCurrentlyInsideOf[0].nodeList;
        }
        else
        {
            activeNodes.AddRange(rnz.nodeList.Except(activeNodes));

            activeNodes.AddRange(rnz.nodeList);

            /*foreach (var node in rnz.associatedNodes) {
             *      activeNodes.Remove (node);
             * }
             * }
             * if (rnz.linkedZones!=null) {
             * foreach (var zone in rnz.linkedZones) {
             *      activeNodes.AddRange(zone.nodeList.Except(activeNodes));
             *      foreach (var node in rnz.associatedNodes) {
             *              activeNodes.Remove (node);
             *      }
             * }
             * }*/
        }
        targetController.nodes = activeNodes.ToArray();
    }
コード例 #3
0
 void OnTriggerExit(Collider other)
 {
     current_rnz = other.gameObject.GetComponent <ReverbNodeZone> ();
     foreach (var node in current_rnz.nodeList)
     {
         activeNodes.Remove(node);
     }
     targetController.nodes = activeNodes.ToArray();
 }
コード例 #4
0
 /*void OnTriggerStay(Collider other){
  *      Debug.Log ("triggerstay");
  *      rnz = other.gameObject.GetComponent<ReverbNodeZone> ();
  *      //activeNodes = new GameObject[rnz.nodeList.Count];
  *      activeNodes = rnz.nodeList;
  * }*/
 void OnTriggerEnter(Collider other)
 {
     //Debug.Log ("triggerenter");
     current_rnz = other.gameObject.GetComponent <ReverbNodeZone> ();
     //activeNodes = new GameObject[rnz.nodeList.Count];
     if (current_rnz.isExclusive)
     {
         activeNodes.Clear();
     }
     activeNodes.AddRange(current_rnz.nodeList);
     targetController.nodes = activeNodes.ToArray();
 }