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? }
/*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(); }
void OnTriggerExit(Collider other) { current_rnz = other.gameObject.GetComponent <ReverbNodeZone> (); foreach (var node in current_rnz.nodeList) { activeNodes.Remove(node); } targetController.nodes = activeNodes.ToArray(); }
/*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(); }