Ejemplo n.º 1
0
    // Update the terrain per vertex.
    private void Update()
    {
        // Update Revealable Objects
        Collider[] colliders = Physics.OverlapSphere(transform.position, m_UnrenderRadius, m_ObjectLayerMask);
        float      sqrRadius = m_Radius * m_Radius;

        foreach (Collider c in colliders)
        {
            RevealableObject target = c.GetComponent <RevealableObject>();

            if (target == null)
            {
                continue;
            }

            float sqrDist = Vector3.SqrMagnitude(transform.position - c.transform.position);
            if (sqrDist > sqrRadius)
            {
                target.UnStealth();
            }
            else
            {
                target.Stealth();
            }
        }
    }
Ejemplo n.º 2
0
    // Update the terrain per vertex.
    private void Update()
    {
        m_RadiusModifier = Mathf.Lerp(m_RadiusModifier, m_RadiusModifierTarget, Time.deltaTime);
        // Update Revealable Objects (the ones that fade from bottom to top in one go)

        m_VisibilityModifier.m_Position = transform.position;
        m_VisibilityModifier.m_Radius   = GetRadius();

        switch (m_RevealMode)
        {
        case RevealMode.REVEALMODE_SHOW:
            m_VisibilityModifier.m_IsUnreveal = false;
            break;

        case RevealMode.REVEALMODE_HIDE:
            m_VisibilityModifier.m_IsUnreveal = true;
            break;

        default:
            break;
        }

        if (Input.GetKeyDown(KeyCode.N))
        {
            m_VisibilityModifier.m_IsUnreveal = !m_VisibilityModifier.m_IsUnreveal;
        }

        if (m_RevealObjectsByDistance)
        {
            Collider[] colliders = Physics.OverlapSphere(transform.position, GetRadius(), m_ObjectLayerMask);

            foreach (Collider c in colliders)
            {
                RevealableObject target = c.GetComponent <RevealableObject>();

                if (target == null)
                {
                    continue;
                }

                if (!m_VisibilityModifier.m_IsUnreveal)
                {
                    target.Reveal();
                }
                else
                {
                    target.Hide();
                }
            }
        }

        ResetRadiusModifier();
    }
Ejemplo n.º 3
0
    // Update Revealable Objects (the ones that fade from bottom to top in one go)
    // FixedUpdate because physics functions
    void FixedUpdate()
    {
        Collider[] colliders = Physics.OverlapSphere(transform.position, m_Radius, m_ObjectLayerMask);

        foreach (Collider c in colliders)
        {
            RevealableObject target = c.GetComponent <RevealableObject>();

            if (target == null)
            {
                continue;
            }

            target.Reveal();
        }
    }