示例#1
0
        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);
        }
示例#2
0
        public override void DidHide()
        {
            if (m_worldObj != null)
            {
                ARWorld.Instance.RemoveWorldObject(m_worldObj);
                m_worldObj = null;
            }

            base.DidHide();
        }
示例#3
0
        protected void AddARObject(LocationARWorldObject worldObject)
        {
            if (m_worldObj != null)
            {
                ARWorld.Instance.RemoveWorldObject(m_worldObj);
            }

            m_worldObj = worldObject;

            ARWorld.Instance.AddWorldObject(m_worldObj);
        }
示例#4
0
        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);
                }
            }
        }
示例#5
0
        /// <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();
        }
示例#6
0
 public virtual void CatchObject(LocationARWorldObject obj)
 {
     DidCatch = true;
     ARWorld.Instance.RemoveWorldObject(obj);
     m_worldObj = null;
 }