Esempio n. 1
0
    IEnumerator ExitInteraction(List <Collider> pulseObjects)
    {
        List <Collider> exitObjects;

        if (m_bOnCoolDown)
        {
            exitObjects = m_preObjects.Except(pulseObjects).ToList();
        }
        else
        {
            exitObjects = pulseObjects;
        }

        yield return(null);

        Stopwatch sw = new Stopwatch();

        sw.Start();
        while (exitObjects.Count > 0)
        {
            m_preObjects.Remove(exitObjects[0]);
            if (exitObjects[0] != null)
            {
                IPulseInteract pulse = exitObjects[0].GetComponent <IPulseInteract>();
                if (pulse != null)
                {
                    //ExitPulse
                    pulse.OnPulseExit();
                }
            }


            exitObjects.RemoveAt(0);
            if (sw.ElapsedMilliseconds > .07f)
            {
                sw.Stop();
                yield return(null);

                sw.Reset();
                sw.Start();
            }
        }
        sw.Stop();
    }
Esempio n. 2
0
    /// <summary>
    /// Toggle all the objects with the OnPulse.
    /// </summary>
    /// <param name="objs"></param>
    private IEnumerator TogglePulseOjects(List <Collider> objs)
    {
        m_bInteracting = true;

        float     timePerInteraction = .05f;
        Stopwatch sw = new Stopwatch();

        sw.Start();
        while (objs.Count > 0)
        {
            if (objs[0] == null)
            {
                objs.RemoveAt(0);
                continue;
            }
            // float distance = Vector3.Distance(transform.position, objs[0].transform.position);
            IPulseInteract pulse = objs[0].GetComponent <IPulseInteract>();
            if (pulse != null)
            {
                pulse.OnPulseEnter(0);
            }

            objs.RemoveAt(0);



            if (sw.ElapsedMilliseconds < timePerInteraction)
            {
                sw.Stop();
                yield return(null);

                sw.Reset();
                sw.Start();
            }
        }
        sw.Stop();

        m_bInteracting = false;
    }