Exemple #1
0
        // Update is called once per frame
        void Update()
        {
            Session.GetTrackables <AugmentedImage>(
                m_TempAugmentedImages, TrackableQueryFilter.Updated);
            foreach (var image in m_TempAugmentedImages)
            {
                if (image.DatabaseIndex != TargetImageIndex)
                {
                    continue;
                }

                if (image.TrackingState == TrackingState.Tracking && MarkerObj.activeSelf == false)
                {
                    // Create an anchor to ensure that ARCore keeps tracking this augmented image.
                    Anchor anchor = image.CreateAnchor(image.CenterPose);
                    MarkerObj.transform.parent        = anchor.transform;
                    MarkerObj.transform.localPosition = Vector3.zero;
                    MarkerObj.transform.localRotation = Quaternion.identity;
                    MarkerObj.SetActive(true);
                    ResetFrame.ResetFrameBoth(MarkerObj.transform);
                    ToastUtil.Toast(this, "Set Robot pose by the marker.");
                }
                else if (image.TrackingState == TrackingState.Stopped && MarkerObj.activeSelf == true)
                {
                    if (MarkerObj.transform.parent != null)
                    {
                        Destroy(MarkerObj.transform.parent.gameObject);
                    }
                    MarkerObj.transform.parent = null;
                }
            }
        }