protected ARWorldObject AddARObject(Location location, Augmented3dAssetObject arObject) { var worldObj = new LocationARWorldObject { Location = location, Options = LocationAugmentedOptions.GetLinearDistanceOptions(1, 3, 125, true), GameObject = arObject.gameObject }; arObject.WorldObject = worldObj; worldObj.Clicked += worldObj_Selected; AddARObject(worldObj); if (TargetIndicator) { var distanceWorldObj = new LocationARWorldObject { Options = LocationAugmentedOptions.GetFixedDistanceOptions(10, true), GameObject = TargetIndicator.gameObject, Location = m_worldObj.Location }; m_distanceObj = distanceWorldObj; m_distanceObj.Elevation = m_worldObj.Elevation; m_distanceObj.GameObject.transform.parent = m_worldObj.GameObject.transform; ARWorld.Instance.AddWorldObject(m_distanceObj); } return(worldObj); }
public override void DidHide() { if (m_worldObj != null) { ARWorld.Instance.RemoveWorldObject(m_worldObj); m_worldObj = null; } base.DidHide(); }
protected void AddARObject(LocationARWorldObject worldObject) { if (m_worldObj != null) { ARWorld.Instance.RemoveWorldObject(m_worldObj); } m_worldObj = worldObject; ARWorld.Instance.AddWorldObject(m_worldObj); }
public void SpawnItem(LocationSpawnItemDriverEventArgs <LocationValuablesCollection> e, ILocationCollectionMechanic m) { var arMechanic = m as ARLocationCollectionMechanic; bool showAnnotation = arMechanic != null && arMechanic.ShowMapAnnotation; var collectible = ValuablesCollection.GetFirstCollectible(e.Results.SpawnItem.ValuablesCollection); var options = GetOptions(e.Results.SpawnItem, m as ARLocationCollectionMechanic); if (collectible != null) { ThreadHelper.Instance.CallOnMainThread(() => { LocationARWorldObject worldObj = null; if (collectible.AssetInstance != null && collectible.AssetInstance.Asset != null) { worldObj = ARWorld.Instance.AddLocationARAsset( e.Results.SourceLocation, 0, collectible.AssetInstance, options); } if (worldObj == null) { worldObj = ARWorld.Instance. AddLocationARImage(e.Results.SourceLocation, 0, collectible.ImageUrl, options); } worldObj.Clicked += (sender, args) => { RewardManager.Instance.ShowRewards(e.Results.SpawnItem.ValuablesCollection); WorldValuablesManager.Instance.Collect(e); }; m_worldObjects[e.Results.SourceLocation.Id] = worldObj; }); if (showAnnotation && MapLocationCollectionDriver) { MapLocationCollectionDriver.AddARCollectAnnotation(e); } } }
/// <summary> /// Add the AR object to AR World. /// </summary> public override void Start() { var collectible = TaskDriver.FirstCollectible; if (TaskDriver.Task.Locations != null && TaskDriver.Task.Locations.Length > 0 && collectible != null) { if (collectible.AssetInstance != null && collectible.AssetInstance.Asset != null) { m_worldObject = ARWorld.Instance.AddLocationARAsset( TaskDriver.Task.Locations[0], 0, // elevation collectible.AssetInstance, GetOptions()); } if (m_worldObject == null) { m_worldObject = ARWorld.Instance.AddLocationARImage( TaskDriver.Task.Locations[0], 0, collectible.ImageUrl, GetOptions()); } if (m_worldObject != null) { m_worldObject.Clicked += m_worldObject_Clicked; } } ; if (ARCatcherMinigameDriverDelegate.Instance) { ARCatcherMinigameDriverDelegate.Instance.ShowTask(TaskDriver, m_worldObject); } base.Start(); }
public virtual void CatchObject(LocationARWorldObject obj) { DidCatch = true; ARWorld.Instance.RemoveWorldObject(obj); m_worldObj = null; }