void AddCollectibleToObject(ARWorldObject worldObj) { var collectible = FirstCollectible; if (!Task.IsHidden) { var text = IsTakeTask ? Localize.GetLocalizedString("ARAnnotation.TapToTake", "Tap to Collect") : (IsGiveTask ? Localize.GetLocalizedString("ARAnnotation.TapToPut", "Tap to Put") : null); ARAnnotationViewController.Instance.AddTapAnnotation(worldObj, text, () => { if (IsTakeTask) { CollectItemFromObject(worldObj); } else { } }); if (collectible != null) { ARAnnotationViewController.Instance.AddCollectibleAnnotation(worldObj, collectible, () => { CollectItemFromObject(worldObj); }); } } worldObj.Clicked += worldObj_Selected; }
public void Action(LocationTaskDriver driver, ARWorldObject worldObject) { if (OnAction != null) { OnAction.Invoke(); } }
public void Action(ARCatcherMinigameDriver driver, ARWorldObject worldObject) { if (OnAction != null) { OnAction.Invoke(); } }
public void SetFocus(LocationTaskDriver driver, ARWorldObject worldObject, bool focus) { if (worldObject != null) { var task = driver.Task; if (focus) { m_guideData = new ARGuideData { Instructions = task.Title, Range = task.ActionRange, WorldObject = worldObject }; ARViewManager.Instance.SetGuide(m_guideData); var text = driver.IsTakeTask ? Localize.GetLocalizedString("ARAnnotation.TapToTake", "Tap to Collect") : (driver.IsGiveTask ? Localize.GetLocalizedString("ARAnnotation.TapToPut", "Tap to Put") : null); ARAnnotationViewController.Instance.AddTapAnnotation(worldObject, text); } else { if (m_guideData != null) { ARViewManager.Instance.ClearGuide(m_guideData); } ARAnnotationViewController.Instance.RemoveTapAnnotation(worldObject); } } }
public void HideTask(LocationTaskDriver driver, ARWorldObject worldObject) { if (m_guideData != null) { ARViewManager.Instance.ClearGuide(m_guideData); } ARAnnotationViewController.Instance.RemoveTapAnnotation(worldObject); }
public void HideTask(ARCatcherMinigameDriver minigameDriver, ARWorldObject worldObject) { if (m_guideData != null) { ARViewManager.Instance.ClearGuide(m_guideData); } ARAnnotationViewController.Instance.RemoveTapAnnotation(worldObject); }
void AddTapAnnotation(ARWorldObject worldObj) { if (!Task.IsHidden) { ARAnnotationViewController.Instance.AddTapAnnotation(worldObj); worldObj.Clicked += worldObj_Selected; } }
protected virtual void ObjectSelected(ARWorldObject obj) { if (TapObjectToCatch && obj == m_worldObj && IsInTarget) { CatchObject(m_worldObj); } }
void CollectItemFromObject(ARWorldObject obj) { obj.Selected -= worldObj_Selected; RemoveCollectiblesFromObject(obj); ARAnnotationViewController.Instance.RemoveTapAnnotation(obj); Action(); }
void AddTapAnnotation(ARWorldObject worldObj) { if (!Task.IsHidden) { ARAnnotationViewController.Instance.AddTapAnnotation(worldObj, null, () => { CollectItemFromObject(worldObj); }); worldObj.Clicked += worldObj_Selected; } }
void RemoveCollectiblesFromObject(ARWorldObject worldObj) { ARAnnotationViewController.Instance.RemoveTapAnnotation(worldObj); var collectible = FirstCollectible; worldObj.Selected -= worldObj_Selected; if (collectible != null) { ARAnnotationViewController.Instance.RemoveCollectibleAnnotation(worldObj, collectible); } }
public void RemoveCollectibleAnnotation(ARWorldObject worldObject, Collectible collectible) { ARAnnotationContainer container = null; if (m_containers.TryGetValue(worldObject, out container)) { container.RemoveCollectibleAnnotation(collectible); if (!container.HasAnnotations) { RemoveContainer(worldObject, container); } } }
internal void RemoveTapAnnotation(ARWorldObject worldObject) { ARAnnotationContainer container = null; if (m_containers.TryGetValue(worldObject, out container)) { container.RemoveTapAnnotation(); if (!container.HasAnnotations) { RemoveContainer(worldObject, container); } } }
ARAnnotationContainer GetOrCreateContainer(ARWorldObject worldObject) { ARAnnotationContainer container = null; if (!m_containers.TryGetValue(worldObject, out container)) { container = Instantiate(ContainerPrefab); container.gameObject.transform.SetParent(this.transform, false); PositionContainer(worldObject, container); m_containers[worldObject] = container; } return(container); }
public override ARWorldObject GetNearestWorldObject() { ARWorldObject worldObj = null; if (ForegroundPositionService.Instance.HasLocationData) { var coords = ForegroundPositionService.Instance.Position; worldObj = m_worldObjects .OfType <LocationARWorldObject>() .OrderBy(o => coords.GetDistanceFrom(o.Location.Coordinates)) .FirstOrDefault(); } if (worldObj == null) { worldObj = m_worldObjects.FirstOrDefault(); } return(worldObj); }
private void PositionContainer(ARWorldObject worldObject, ARAnnotationContainer container) { if (worldObject.IsVisible && worldObject.GameObject) { container.gameObject.SetActive(true); var bounds = ARWorld.Instance.GetScreenBounds(worldObject); var ctlRect = (RectTransform)this.transform; var rect = (RectTransform)container.transform; //var x = Screen.width * pos.x - (Screen.width / 2); //var y = Screen.height * pos.y - (Screen.height / 2); var minx = container.MinSize.x / ctlRect.rect.width; var miny = container.MinSize.y / ctlRect.rect.height; Vector2 max = bounds.max; Vector2 min = bounds.min; var size = bounds.max - bounds.min; if (size.x < minx || size.y < miny) { bounds.size = new Vector2(Mathf.Max(size.x, minx), Mathf.Max(size.y, miny)); } rect.anchorMax = bounds.max; rect.anchorMin = bounds.min; rect.sizeDelta = Vector3.zero; //rect.anchorMin = new Vector2(pos.x, pos.y); //rect.anchoredPosition = new Vector2(0, 0); } else { container.gameObject.SetActive(false); } }
public void AddCollectibleAnnotation(ARWorldObject worldObject, Collectible collectible, Action onClick = null) { var container = GetOrCreateContainer(worldObject); container.AddCollectibleAnnotation(collectible, onClick); }
public void Complete(ARCatcherMinigameDriver driver, ARWorldObject worldObject) { ARViewManager.Instance.SetTaskComplete(driver.TaskDriver); }
private void RemoveContainer(ARWorldObject worldObject, ARAnnotationContainer container) { m_containers.Remove(worldObject); Destroy(container.gameObject); }
void RemoveTapAnnotation(ARWorldObject worldObj) { ARAnnotationViewController.Instance.RemoveTapAnnotation(worldObj); worldObj.Clicked -= worldObj_Selected; }
public void AddTapAnnotation(ARWorldObject worldObject, string text = null, Action onClick = null) { var container = GetOrCreateContainer(worldObject); container.AddTapAnnotation(text, onClick); }
public void Complete(LocationTaskDriver driver, ARWorldObject worldObject) { ARViewManager.Instance.SetTaskComplete(driver); }
public void ShowTask(LocationTaskDriver driver, ARWorldObject worldObject) { }