private void updateNearest() { Switch last = nearest; RaycastHit hit = new RaycastHit(); Physics.Raycast(cam.position, cam.forward, out hit, maxDistance, ~LayerMask.NameToLayer("Switch")); if (hit.transform) { nearest = (Switch)hit.transform.GetComponent("Switch"); if (nearest && (last != nearest)) { nearest.Active(); } } else { nearest = null; } if (last && (last != nearest)) { last.Inactive(); } }