private IEnumerator JudgeEnumerator() { var wait = new WaitForSeconds(INTERVALTIME); while (true) { if (!m_isEntered) { var tempDistance = (m_target.position - transform.position).magnitude; if (tempDistance < m_radius) { var args = new DetectorEventArgs(); OnPortalTriggerEnter(args); } } else { var tempDistance = (m_target.position - transform.position).magnitude; if (tempDistance <= m_radius) { var args = new DetectorEventArgs(); OnPortalTriggerStay(args); } else { var args = new DetectorEventArgs(); OnPortalTriggerExit(args); } } yield return(wait); } }
private void OnPortalTriggerEnter(DetectorEventArgs e = new DetectorEventArgs()) { if (m_triggerEnter != null) { m_triggerEnter.Invoke(); } if (m_triggerEnterEventHandle != null) { m_triggerEnterEventHandle(this, e); } m_isEntered = true; }
private void OnPortalTriggerStay(DetectorEventArgs e = new DetectorEventArgs()) { if (m_triggerStay != null) { m_triggerStay.Invoke(); } if (m_triggerStayEventHandle != null) { m_triggerStayEventHandle(this, e); } m_distance = (m_target.position - transform.position).magnitude; }
private void OnPortalTriggerExit(DetectorEventArgs e = new DetectorEventArgs()) { if (m_triggerExit != null) { m_triggerExit.Invoke(); } if (m_triggerExitEventHandle != null) { m_triggerExitEventHandle(this, e); } m_distance = Mathf.Infinity; m_isEntered = false; }