//重置位置方法 public void OnclickRe(int index) { AugmentedImageVisualizerOverride visualizer = null; m_Visualizers.TryGetValue(index, out visualizer); if (visualizer != null) { m_Visualizers.Remove(index); visualizer.gameObject.SetActive(false); FitToScanOverlay.SetActive(true); } }
public void Update() { if (Input.GetKey(KeyCode.Escape)) { Application.Quit(); } if (Session.Status != SessionStatus.Tracking) { return; } Session.GetTrackables(m_TempAugmentedImages, TrackableQueryFilter.Updated); foreach (var image in m_TempAugmentedImages) { Debug.Log("name======" + image.Name); Debug.Log("index======" + image.DatabaseIndex); AugmentedImageVisualizerOverride tempAugmentedImageVisualizer = null; m_Visualizers.TryGetValue(image.DatabaseIndex, out tempAugmentedImageVisualizer); if (image.TrackingState == TrackingState.Tracking && tempAugmentedImageVisualizer == null) { Debug.Log("TrackName" + image.Name); Debug.Log("TrackIndex" + image.DatabaseIndex); if (!m_isDetectedImgShowToast) { ToastUtil.showToast("ARCoreImageController Update() 检测到图像成功 !"); m_isDetectedImgShowToast = true; } Anchor anchor = image.CreateAnchor(image.CenterPose); //将锚点放到集合里 if (!m_anchorDict.ContainsKey(image.DatabaseIndex)) { m_anchorDict.Add(image.DatabaseIndex, anchor); } //visualizer = AugmentedImageVisualizerPrefab[image.DatabaseIndex]; //visualizer.gameObject.SetActive(true); //visualizer.transform.parent = anchor.transform; //visualizer.transform.localPosition = Vector3.zero; //visualizer.transform.localRotation = new Quaternion(0, 0, 0, 0); //visualizer.transform.parent = null; //识别出来就添加了一个图片,这里先注释了改为手动添加 //使用 AugmentedImageVisualizerPrefab 通过 image.DatabaseIndex 初始化一个 AugmentedImageVisualizerOverride 对象,并设置锚点的 transform //tempAugmentedImageVisualizer = (AugmentedImageVisualizerOverride)Instantiate(AugmentedImageVisualizerPrefab[image.DatabaseIndex], anchor.transform); ////为该 AugmentedImageVisualizerOverride 对象设置识别到的 AugmentedImage (增强图像) 对象 //tempAugmentedImageVisualizer.Image = image; //m_Visualizers.Add(image.DatabaseIndex, tempAugmentedImageVisualizer); } } foreach (var visualizer in m_Visualizers.Values) { if (visualizer.Image.TrackingState == TrackingState.Tracking) { FitToScanOverlay.SetActive(false); return; } } }