/// <summary> /// Unregisters a raycaster previously registered with <see cref="RegisterRaycaster(IRaycaster)"/>. /// </summary> /// <param name="raycaster">A raycaster to use in the fallback case.</param> internal void UnregisterRaycaster(IRaycaster raycaster) { if (m_Raycasters != null) { m_Raycasters.Remove(raycaster); } }
/// <summary> /// Allows AR managers to register themselves as a raycaster. /// Raycasters be used as a fallback method if the AR platform does /// not support raycasting using arbitrary <c>Ray</c>s. /// </summary> /// <param name="raycaster">A raycaster implementing the IRaycast interface.</param> internal void RegisterRaycaster(IRaycaster raycaster) { ConstructIfNecessary(); if (!m_Raycasters.Contains(raycaster)) { m_Raycasters.Add(raycaster); } }
public GazeTargeter( [Inject] IRaycaster raycaster, [Inject(Id = "Head position")] ReactiveProperty <Vector3> headPosition, [Inject(Id = "View direction")] ReactiveProperty <Vector3> viewDirection) { _raycaster = raycaster; // Simply update head position and gaze direction as new values come in headPosition.Subscribe(newPos => _headPosition = newPos); viewDirection.Subscribe(newDir => _viewDirection = newDir); }
public StabilizationPlaneManager ( [Inject] IRaycaster raycaster, [Inject(Id = "Head position")] ReactiveProperty <Vector3> headPosition, [Inject(Id = "View direction")] ReactiveProperty <Vector3> viewDirection, [Inject(Id = "Stab plane default distance")] float defaultDistance ) { _raycaster = raycaster; headPosition.Subscribe(newPos => _headPosition = newPos); viewDirection.Subscribe(newDir => _viewDirection = newDir); _defaultDistance = defaultDistance; }
void Awake() { /* adding swiping event listener */ UserInterface.OnSwipes += UserInterface_OnSwipesRotate; _arOrigin = FindObjectOfType <ARSessionOrigin>(); _arOriginRaycast = _arOrigin.GetComponent <ARRaycastManager>(); if (Application.isMobilePlatform) { _raycaster = new PhysicalSpaceRaycaster(_arOriginRaycast); } else { _raycaster = new GameSpaceRaycaster(); } ResetCalibration(); }