private void UpdatePointer(bool active = true) { RaycastHit hit; Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition); if (Physics.Raycast(ray, out hit, 50.0f, 1 << 8) && active) { pointer.position = hit.point; pointer.up = torus.GetNormalFromCartesian(hit.point); } else { pointer.position = Vector3.down * 100.0f; } }