private void UpdatePointerProjectRay(Vector3 destination) { //Make ray start at player's reticle and end at the global "destination" point Vector3 origin = _Camera.ProjectRayOrigin(PlayerReticle.GetPointerPosition()); Vector3 normal = _Camera.ProjectLocalRayNormal(PlayerReticle.GetPointerPosition()); Transform update = new Transform(_Camera.GlobalTransform.basis, origin); PointerProjectRay.GlobalTransform = update; PointerProjectRay.CastTo = normal * -ScanRay.CastTo.z; }