/// @endcond /// <summary>Sets the reticle pointer's target.</summary> /// <param name="target">The target location.</param> /// <param name="interactive">Whether the pointer is pointing at an interactive object.</param> /// <returns>Returns `true` if the target is set successfully.</returns> private bool SetPointerTarget(Vector3 target, bool interactive) { if (PointerTransform == null) { Debug.LogWarning("Cannot operate on a null pointer transform"); return(false); } Vector3 targetLocalPosition = PointerTransform.InverseTransformPoint(target); ReticleDistanceInMeters = Mathf.Clamp(targetLocalPosition.z, RETICLE_DISTANCE_MIN, maxReticleDistance); if (interactive) { ReticleInnerAngle = RETICLE_MIN_INNER_ANGLE + RETICLE_GROWTH_ANGLE; ReticleOuterAngle = RETICLE_MIN_OUTER_ANGLE + RETICLE_GROWTH_ANGLE; } else { ReticleInnerAngle = RETICLE_MIN_INNER_ANGLE; ReticleOuterAngle = RETICLE_MIN_OUTER_ANGLE; } return(true); }
/// @endcond /// <summary>Sets the reticle pointer's target.</summary> /// <param name="target">The target location.</param> /// <param name="interactive">Whether the pointer is pointing at an interactive object.</param> /// <returns>Returns `true` if the target is set successfully.</returns> private bool SetPointerTarget(Vector3 target, bool interactive) { if (PointerTransform == null) { Debug.LogWarning("Cannot operate on a null pointer transform"); return(false); } Vector3 targetLocalPosition = PointerTransform.InverseTransformPoint(target); ReticleDistanceInMeters = Mathf.Clamp(targetLocalPosition.z, RETICLE_DISTANCE_MIN, maxReticleDistance); var inter = result.gameObject; if (inter.gameObject.layer != LayerMask.NameToLayer("UI") && !inter.gameObject.GetComponent <UIAnim>()) { if (interactive) { ReticleInnerAngle = RETICLE_MIN_INNER_ANGLE + RETICLE_GROWTH_ANGLE; ReticleOuterAngle = RETICLE_MIN_OUTER_ANGLE + RETICLE_GROWTH_ANGLE; } else { ReticleInnerAngle = RETICLE_MIN_INNER_ANGLE; ReticleOuterAngle = RETICLE_MIN_OUTER_ANGLE; } } return(true); }