// 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(); } } }
// 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(); }
// 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(); } }