Пример #1
0
        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);
            }
        }
Пример #2
0
 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;
 }
Пример #3
0
 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;
 }
Пример #4
0
 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;
 }