/// <summary> /// Whether the <see cref="RaycastResultState"/> represents a successful raycast hit. /// </summary> /// <param name="state">The <see cref="RaycastResultState"/> being extended.</param> /// <returns><c>true</c> if <paramref name="state"/> represents a successful raycast hit (i.e., /// <see cref="RaycastResultState.SuccessHitObserved"/> or /// <see cref="RaycastResultState.SuccessHitUnobserved"/>) otherwise <c>false</c>.</returns> public static bool Success(this RaycastResultState state) { switch (state) { case RaycastResultState.SuccessHitUnobserved: case RaycastResultState.SuccessHitObserved: return(true); default: return(false); } }
/// <summary> /// Whether the <see cref="RaycastResultState"/> represents an error condition. /// </summary> /// <param name="state">The <see cref="RaycastResultState"/> being extended.</param> /// <returns><c>true</c> if the <see cref="Success"/> returns <c>false</c>.</returns> public static bool Error(this RaycastResultState state) { return(Done(state) && !Success(state)); }
/// <summary> /// Whether the <see cref="RaycastResultState"/> has completed or not. /// </summary> /// <param name="state">The <see cref="RaycastResultState"/> being extended.</param> /// <returns><c>true</c> if <paramref name="state"/> is not /// <see cref="RaycastResultState.Pending"/>. /// </returns> public static bool Done(this RaycastResultState state) { return(state != RaycastResultState.Pending); }