Example #1
0
 void RemoveImageAnchor(ARImageAnchor arImageAnchor)
 {
     // Debug.LogFormat("image anchor removed[{0}] : tracked => {1}", arImageAnchor.identifier, arImageAnchor.isTracked);
     // if (imageAnchorGO) {
     //  GameObject.Destroy (imageAnchorGO);
     // }
 }
Example #2
0
    void AddImageAnchor(ARImageAnchor arImageAnchor)
    {
        Debug.Log("image anchor added");
        if (prefabsToGenerate.Exists(e => e.name.Equals(arImageAnchor.referenceImageName)) && prefabNotGenerated)
        {
            Vector3    position = UnityARMatrixOps.GetPosition(arImageAnchor.transform);
            Quaternion rotation = UnityARMatrixOps.GetRotation(arImageAnchor.transform);

            refImageName = arImageAnchor.referenceImageName;


            GameObject prefabToGenerate = getPrefab(prefabsToGenerate, refImageName);

            imageAnchorGO = Instantiate <GameObject>(prefabToGenerate, position + prefabToGenerate.transform.position,
                                                     prefabToGenerate.transform.rotation);

            QRPanel.SetActive(false);

            Button.SetActive(true);

            TakePhotoButton.SetActive(true);

            QRButton.SetActive(true);

            prefabNotGenerated = false;
        }
    }
    void AddImageAnchor(ARImageAnchor arImageAnchor)
    {
        Debug.LogFormat("image anchor added[{0}] : tracked => {1}", arImageAnchor.identifier, arImageAnchor.isTracked);
        if (arImageAnchor.referenceImageName == referenceImage.imageName)
        {
            Vector3    position = UnityARMatrixOps.GetPosition(arImageAnchor.transform);
            Quaternion rotation = UnityARMatrixOps.GetRotation(arImageAnchor.transform);

            shinkawa   = Instantiate <GameObject> (prefabToGenerate1, position, rotation); // shinkawaをinstantiate
            desk       = Instantiate <GameObject> (prefabToGenerate2, position, rotation); // deskをinstantiate
            autd       = Instantiate <GameObject>(prefabToGenerate3, position, rotation);  // autdをinstantiate
            autdChild1 = autd.transform.GetChild(0).gameObject;
            autdChild2 = autd.transform.GetChild(1).gameObject;


            deskMeshRenderer       = desk.GetComponent <MeshRenderer>();
            autdChild1MeshRenderer = autdChild1.GetComponent <MeshRenderer>();
            autdChild2MeshRenderer = autdChild2.GetComponent <MeshRenderer>();

            // shinkawaのanimation関連の処理
            shinkawa.AddComponent <Animator>();
            animator = shinkawa.GetComponent <Animator>();
            animator.runtimeAnimatorController = runtimeAnimatorController;
            animator.avatar  = avatar;
            animator.enabled = false;
        }
    }
    void UpdateImageAnchor(ARImageAnchor arImageAnchor)
    {
        Debug.LogFormat("image anchor updated[{0}] : tracked => {1}", arImageAnchor.identifier, arImageAnchor.isTracked);
        if (arImageAnchor.referenceImageName == referenceImage.imageName)
        {
            if (arImageAnchor.isTracked)
            {
                if (!imageAnchorGO.activeSelf)
                {
                    imageAnchorGO.SetActive(true);

                    anchorID = referenceImage.imageID;

                    //notesScript.GetID(anchorID);
                }
                imageAnchorGO.transform.position = UnityARMatrixOps.GetPosition(arImageAnchor.transform);
                imageAnchorGO.transform.rotation = UnityARMatrixOps.GetRotation(arImageAnchor.transform);

                anchorID = referenceImage.imageID;

                //notesScript.GetID(anchorID);
            }
            else if (imageAnchorGO.activeSelf)
            {
                imageAnchorGO.SetActive(false);

                anchorID = 0;

                //notesScript.GetID(anchorID);
            }
        }
    }
Example #5
0
 public void RemoveImageAnchor(ARImageAnchor arImageAnchor)
 {
     if (arImageAnchor.referenceImageName == referenceImage.imageName)
     {
         RemoveAnchor();
     }
 }
    void AddImageAnchor(ARImageAnchor arImageAnchor)
    {
        Debug.LogFormat("image anchor added[{0}] : tracked => {1}", arImageAnchor.identifier, arImageAnchor.isTracked);
        if (arImageAnchor.referenceImageName == referenceImage.imageName)
        {
            // ---------------------------------------------------------------
            // THIS PART IS WHERE CODE GETS EXECUTED WHEN AN IMAGE IS DETECTED
            // ---------------------------------------------------------------

            Vector3    position = UnityARMatrixOps.GetPosition(arImageAnchor.transform);
            Quaternion rotation = UnityARMatrixOps.GetRotation(arImageAnchor.transform);

            if (!destroyObjectOnEnd)
            {
                if (!hasAlreadyGeneratedPrefab)
                {
                    imageAnchorGO             = Instantiate <GameObject>(prefabToGenerate, position, rotation);
                    hasAlreadyGeneratedPrefab = true;
                }
            }
            else
            {
                imageAnchorGO = Instantiate <GameObject>(prefabToGenerate, position, rotation);
            }
        }
    }
Example #7
0
    private void UpdateImageAnchor(ARImageAnchor arImageAnchor)
    {
        Debug.LogFormat("image anchor updated[{0}] : tracked => {1}", arImageAnchor.Identifier, arImageAnchor.IsTracked);
        int index;

        if (arImageAnchor.ReferenceImageName != null && int.TryParse(arImageAnchor.ReferenceImageName, out index) && index >= 0)
        {
            GameObject gameObjectToAHandle = null;
            if (index < _gameObjects.Count)
            {
                gameObjectToAHandle = _gameObjects[index];
            }
            if (gameObjectToAHandle != null)
            {
                if (arImageAnchor.IsTracked)
                {
                    gameObjectToAHandle.transform.position = UnityARMatrixOps.GetPosition(arImageAnchor.Transform);
                    gameObjectToAHandle.transform.rotation = UnityARMatrixOps.GetRotation(arImageAnchor.Transform);
                    if (!gameObjectToAHandle.activeSelf)
                    {
                        gameObjectToAHandle.SetActive(true);
                    }
                }
                else if (gameObjectToAHandle.activeSelf)
                {
                    //gameObjectToAHandle.SetActive(false);
                }
            }
        }
    }
Example #8
0
    void AddImageAnchor(ARImageAnchor arImageAnchor)
    {
        Debug.Log("image anchor added");
        // Check that it's one of our images
        if (arImageAnchor.referenceImageName == imageParsons.imageName ||
            arImageAnchor.referenceImageName == imageEcal.imageName)
        {
            // Visual debug and one empty gameObject is necessary to have a Transform in Unity anyway.
            Vector3    position = UnityARMatrixOps.GetPosition(arImageAnchor.transform);
            Quaternion rotation = UnityARMatrixOps.GetRotation(arImageAnchor.transform);
            imageAnchorGO = Instantiate <GameObject> (prefabToGenerate, position, rotation);

            updateWorldOrigin(imageAnchorGO.transform);

            // If it's Parsons.
            if (arImageAnchor.referenceImageName == imageParsons.imageName)
            {
                data.SetLocation("parsons");
            }
            else if (arImageAnchor.referenceImageName == imageEcal.imageName)
            {
                data.SetLocation("ecal");
            }
        }
    }
 void AddImageAnchor(ARImageAnchor arImageAnchor)
 {
     Debug.Log("image anchor added");
     if (arImageAnchor.referenceImageName == referenceImage.imageName)
     {
         Vector3    position = UnityARMatrixOps.GetPosition(arImageAnchor.transform);
         Quaternion rotation = UnityARMatrixOps.GetRotation(arImageAnchor.transform);
         //playArea.SetActive(true);
         if (playArea)
         {
             playArea.transform.position = position;
             playArea.transform.rotation = rotation;
             UnityARSessionNativeInterface.GetARSessionNativeInterface().SetWorldOrigin(playArea.transform);
             UnityARSessionNativeInterface.GetARSessionNativeInterface().AddUserAnchorFromGameObject(playArea);
             if (generateReflectionProbe)
             {
                 CreateEnvironmentProbe(UnityARMatrixOps.UnityToARKitCoordChange(position, rotation));
             }
         }
         else
         {
             Debug.Log("Tried to add Image Anchor, but Play Area null");
         }
         //imageAnchorGO = Instantiate(prefabToGenerate, position, rotation) as GameObject;
         //UnityARSessionNativeInterface.GetARSessionNativeInterface().SetWorldOrigin(imageAnchorGO.transform);
         //UnityARSessionNativeInterface.GetARSessionNativeInterface().AddUserAnchorFromGameObject(imageAnchorGO);
         //CmdSpawn(imageAnchorGO);
     }
 }
    void UpdateImageAnchor(ARImageAnchor arImageAnchor)
    {
        Debug.LogFormat("image anchor updated[{0}] : tracked => {1}", arImageAnchor.identifier, arImageAnchor.isTracked);

        if (arImageAnchor.referenceImageName == referenceImage.imageName && start)
        {
            Debug.Log("UpdateImageAnchor", gameObject);

            if (arImageAnchor.isTracked)
            {
                if (!imageAnchorGO.activeSelf)
                {
                    imageAnchorGO.SetActive(true);
                }

                Move   = UnityARMatrixOps.GetPosition(arImageAnchor.transform) - imageAnchorGO.transform.position;
                Rotate = imageAnchorGO.transform.rotation;

                imageAnchorGO.transform.position = UnityARMatrixOps.GetPosition(arImageAnchor.transform);
                imageAnchorGO.transform.rotation = UnityARMatrixOps.GetRotation(arImageAnchor.transform);

                //Line.GetGameobjects(imageAnchorGO.transform.position, imageAnchorGO.transform.rotation);
            }
            else if (imageAnchorGO.activeSelf)
            {
                imageAnchorGO.SetActive(false);
            }
        }
    }
Example #11
0
    void UpdateImageAnchor(ARImageAnchor arImageAnchor)
    {
        Debug.LogFormat("image anchor updated[{0}] : tracked => {1}", arImageAnchor.identifier, arImageAnchor.isTracked);



        if (arImageAnchor.referenceImageName == _shadowReferenceImage.imageName)
        {
            if (arImageAnchor.isTracked)
            {
                _shadowPlaceholder.transform.position = UnityARMatrixOps.GetPosition(arImageAnchor.transform);
                _shadowPlaceholder.transform.rotation = UnityARMatrixOps.GetRotation(arImageAnchor.transform);
            }
            else
            {
                // image is not tracked
            }
        }
        if (arImageAnchor.referenceImageName == _litReferenceImage.imageName)
        {
            if (arImageAnchor.isTracked)
            {
                _litPlaceholder.transform.position = UnityARMatrixOps.GetPosition(arImageAnchor.transform);
                _litPlaceholder.transform.rotation = UnityARMatrixOps.GetRotation(arImageAnchor.transform);
            }
            else
            {
                // image is not tracked
            }
        }
    }
Example #12
0
    void UpdateImageAnchor(ARImageAnchor arImageAnchor)
    {
        //Debug.LogFormat("image anchor updated[{0}] : tracked => {1}", arImageAnchor.identifier, arImageAnchor.isTracked);
        if (bindObjectToImage && MuseumLocationService.imageAnchors.TryGetValue(arImageAnchor.referenceImageName, out GameObject GO))
        {
            GO = MuseumLocationService.imageAnchors[arImageAnchor.referenceImageName];
            if (arImageAnchor.isTracked)
            {
                if (!GO.activeSelf)
                {
                    GO.SetActive(true);
                }

                if (bindObjectToImage)
                {
                    GO.transform.position = UnityARMatrixOps.GetPosition(arImageAnchor.transform);
                    GO.transform.rotation = UnityARMatrixOps.GetRotation(arImageAnchor.transform);
                }
            }
            else if (GO)
            {
                GO.SetActive(false);
            }
        }
    }
Example #13
0
    void AddImageAnchor(ARImageAnchor arImageAnchor)
    {
        Debug.LogFormat("image anchor added[{0}] : tracked => {1}", arImageAnchor.identifier, arImageAnchor.isTracked);
        foreach (ARReferenceImage referenceImage in referenceImagesSet.referenceImages)
        {
            if (arImageAnchor.referenceImageName == referenceImage.imageName)
            {
                if (MuseumLocationService.imageAnchors.TryGetValue(referenceImage.imageName, out GameObject GO))
                {
                    continue;
                }

                // ---------------------------------------------------------------
                // THIS PART IS WHERE CODE GETS EXECUTED WHEN AN IMAGE IS DETECTED
                // ---------------------------------------------------------------
                Vector3    position = UnityARMatrixOps.GetPosition(arImageAnchor.transform);
                Quaternion rotation = UnityARMatrixOps.GetRotation(arImageAnchor.transform);

                GO                  = Instantiate <GameObject>(prefabToGenerate, position, rotation);
                GO.name             = prefabToGenerate.name + "-" + referenceImage.imageName;
                GO.transform.parent = transform;
                MuseumLocationService.imageAnchors[referenceImage.imageName] = GO;
            }
        }
    }
    void AddImageAnchor(ARImageAnchor arImageAnchor)
    {
        if (arImageAnchor.referenceImageName == referenceImage.imageName)
        {
            if (adToGenerate != null)
            {
                Debug.Log("Generating Ad");
                Vector3    position = UnityARMatrixOps.GetPosition(arImageAnchor.transform);
                Quaternion rotation = UnityARMatrixOps.GetRotation(arImageAnchor.transform);
                imageAnchorGO = Instantiate <GameObject> (prefabToGenerate, position, rotation);

                Vector3    position2 = UnityARMatrixOps.GetPosition(arImageAnchor.transform);
                var        newPos2   = new Vector3(position.x, position.y + 0.06f, position.z);
                Quaternion rotation2 = Quaternion.AngleAxis(30, new Vector3(0, 0, 1));                //UnityARMatrixOps.GetRotation (arImageAnchor.transform);

                adGO = Instantiate <GameObject> (adToGenerate, newPos2, rotation2);
            }
            else
            {
                Vector3    position = UnityARMatrixOps.GetPosition(arImageAnchor.transform);
                Quaternion rotation = UnityARMatrixOps.GetRotation(arImageAnchor.transform);

                imageAnchorGO = Instantiate <GameObject> (prefabToGenerate, position, rotation);
            }
        }
    }
Example #15
0
        private static void IAnchorUpdate(ARImageAnchor anchor)
        {
            Logger.log(Logger.Type.Info, "IAnchorUpdate");

            if (!tracking)
            {
                Logger.log(Logger.Type.Info, "tracking paused. Ignore.");
                return;
            }

            if (!anchors.Contains(anchor.identifier))
            {
                Logger.log(Logger.Type.Warning, "=> IAnchorAdd (tracking was probably off and just turned on).");
                IAnchorAdd(anchor);
                return;
            }

            if (IAnchorUpdated == null)
            {
                Logger.log(Logger.Type.Info, "no delegates for this event.");
                return;
            }

            Logger.log(Logger.Type.Info, "dispatch event.");
            IAnchor a = new IAnchor(anchor.identifier, UnityARMatrixOps.GetPose(anchor.transform), anchor.isTracked, anchor.referenceImageName);

            IAnchorUpdated(a);
        }
Example #16
0
        private static void IAnchorAdd(ARImageAnchor anchor)
        {
            Logger.log(Logger.Type.Info, "IAnchorAdd");

            if (!tracking)
            {
                Logger.log(Logger.Type.Info, "tracking paused. Ignore.");
                return;
            }

            if (!anchors.Add(anchor.identifier))
            {
                Logger.log(Logger.Type.Warning, "anchor was already added: {0}", anchor.identifier);
                return;
            }

            if (IAnchorAdded == null)
            {
                Logger.log(Logger.Type.Info, "no delegates for this event.");
                return;
            }

            Logger.log(Logger.Type.Info, "dispatch event.");
            IAnchor a = new IAnchor(anchor.identifier, UnityARMatrixOps.GetPose(anchor.transform), anchor.isTracked, anchor.referenceImageName);

            IAnchorAdded(a);
        }
Example #17
0
    void AddImageAnchor(ARImageAnchor arImageAnchor)
    {
        if (cubeInstance != null)
        {
            return;
        }

        if (arImageAnchor.referenceImageName == referenceImage.imageName)
        {
            Debug.Log("Add Cube");

            var point = new ARPoint();
            point.x = 0.5f;
            point.y = 0.5f;

            var hitResults = UnityARSessionNativeInterface
                             .GetARSessionNativeInterface()
                             .HitTest(point, ARHitTestResultType.ARHitTestResultTypeFeaturePoint);

            if (hitResults.Count == 0)
            {
                return;
            }

            var hit      = hitResults[0];
            var position = UnityARMatrixOps.GetPosition(hit.worldTransform);

            cubeInstance = Instantiate <GameObject>(prefabToGenerate, position, Quaternion.identity);

            // Notify all subscibers that he has found an image
            OnImageFound?.Invoke();
        }
    }
Example #18
0
    void UpdateImageAnchor(ARImageAnchor arImageAnchor)
    {
        Debug.LogFormat("image anchor updated[{0}] : tracked => {1}", arImageAnchor.identifier, arImageAnchor.isTracked);

        if (arImageAnchor.referenceImageName == referenceImage.imageName)
        {
            imageAnchorGO.transform.position = UnityARMatrixOps.GetPosition(arImageAnchor.transform);
            imageAnchorGO.transform.rotation = UnityARMatrixOps.GetRotation(arImageAnchor.transform);
        }


        //if (arImageAnchor.referenceImageName == referenceImage.imageName) {
        //    if (arImageAnchor.isTracked)
        //    {
        //        if (!imageAnchorGO.activeSelf)
        //        {
        //            imageAnchorGO.SetActive(true);
        //        }
        //        imageAnchorGO.transform.position = UnityARMatrixOps.GetPosition(arImageAnchor.transform);
        //        imageAnchorGO.transform.rotation = UnityARMatrixOps.GetRotation(arImageAnchor.transform);
        //    }
        //    else if (imageAnchorGO.activeSelf)
        //    {
        //        imageAnchorGO.SetActive(false);
        //    }
        //}
    }
    // マーカー更新
    private void UpdateImageAnchor(ARImageAnchor anchor)
    {
        int index = GetImageAnchorIndex(anchor);

        if (index == UNDEFINED_SCORE)
        {
            return;
        }

        GameObject obj = _generateObjects[index];

        if (anchor.isTracked)
        {
            if (isNotTrackingToUnactive && !obj.activeSelf)
            {
                obj.SetActive(true);
            }
            obj.transform.position = UnityARMatrixOps.GetPosition(anchor.transform);
            obj.transform.rotation = UnityARMatrixOps.GetRotation(anchor.transform);
        }
        else if (isNotTrackingToUnactive && obj.activeSelf)
        {
            obj.SetActive(false);
        }
    }
 void RemoveImageAnchor(ARImageAnchor arImageAnchor)
 {
     Debug.Log("image anchor removed");
     if (imageAnchorGO)
     {
         GameObject.Destroy(imageAnchorGO);
     }
 }
Example #21
0
 void RemoveImageAnchor(ARImageAnchor arImageAnchor)
 {
     Debug.LogFormat("image anchor removed[{0}] : tracked => {1}", arImageAnchor.identifier, arImageAnchor.isTracked);
     if (MuseumLocationService.imageAnchors.TryGetValue(arImageAnchor.referenceImageName, out GameObject GO))
     {
         Destroy(GO);
     }
 }
Example #22
0
    void AddTestPrefab(ARImageAnchor arImageAnchor)
    {
        Vector3    position = UnityARMatrixOps.GetPosition(arImageAnchor.transform);
        Quaternion rotation = UnityARMatrixOps.GetRotation(arImageAnchor.transform);

        imageAnchorGO = Instantiate <GameObject>(testPrefabToGenerate, position, rotation);
        Debug.Log("TestPrefabAdded");
    }
 void UpdateImageAnchor(ARImageAnchor arImageAnchor)
 {
     if (arImageAnchor.referenceImageName == referenceImage.imageName)
     {
         //playArea.transform.position = UnityARMatrixOps.GetPosition (arImageAnchor.transform);
         //playArea.transform.rotation = UnityARMatrixOps.GetRotation (arImageAnchor.transform);
     }
 }
Example #24
0
 void RemoveObjectAnchor(ARImageAnchor arImageAnchor)
 {
     Debug.Log("object anchor removed");
     if (objectAnchorGO)
     {
         GameObject.Destroy(objectAnchorGO);
     }
 }
 void RemoveImageAnchor(ARImageAnchor arImageAnchor)
 {
     Debug.LogFormat("image anchor removed[{0}] : tracked => {1}", arImageAnchor.identifier, arImageAnchor.isTracked);
     if (destroyObjectOnEnd && imageAnchorGO)
     {
         GameObject.Destroy(imageAnchorGO);
     }
 }
Example #26
0
 void RemoveImageAnchor(ARImageAnchor arImageAnchor)
 {
     Debug.Log("image anchor removed");
     //foreach (GameObject cube in cubes)
     //{
     //    Destroy(cube);
     //}
 }
Example #27
0
 private void RemoveImageAnchor(ARImageAnchor arImageAnchor)
 {
     Debug.LogFormat("image anchor removed[{0}] : tracked => {1}", arImageAnchor.identifier, arImageAnchor.isTracked);
     if (foodDisplayer)
     {
         Destroy(foodDisplayer);
     }
 }
 void UpadteImageAnchor(ARImageAnchor arImageAnchor)
 {
     Debug.Log("image anchor updated");
     if (arImageAnchor.referenceImageName == referenceImage.imageName)
     {
         imageAnchorGO.transform.position = UnityARMatrixOps.GetPosition(arImageAnchor.transform);
         imageAnchorGO.transform.rotation = UnityARMatrixOps.GetRotation(arImageAnchor.transform);
     }
 }
Example #29
0
 public void UpdateImageAnchor(ARImageAnchor arImageAnchor)
 {
     if (arImageAnchor.referenceImageName == referenceImage.imageName)
     {
         Vector3    newPosition = UnityARMatrixOps.GetPosition(arImageAnchor.transform);
         Quaternion newRotation = UnityARMatrixOps.GetRotation(arImageAnchor.transform);
         UpdateAnchor(newPosition, newRotation);
     }
 }
    // 登録されているマーカーのインデックスを取得
    private int GetImageAnchorIndex(ARImageAnchor anchor)
    {
        if (!_imageNames.Contains(anchor.referenceImageName))
        {
            return(UNDEFINED_SCORE);
        }

        return(_imageNames.FindIndex((e) => { return e == anchor.referenceImageName; }));
    }