123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133 |
- using System.Collections;
- using System.Collections.Generic;
- using UnityEngine;
- using UnityEngine.UI;
- using UnityEngine.XR.ARFoundation;
- public class ImageLibraryManager : MonoBehaviour
- {
- public Text text;
- public ARTrackedImageManager ImagerManager;
- public List<ARTrackedImage> listARTrackedImage;
- private ARTrackedImage oldTrackedImage;
- public bool state = false;
- private void Awake()
- {
-
- }
- public void Start()
- {
- listARTrackedImage = new List<ARTrackedImage>();
- oldTrackedImage = null;
- ImagerManager.trackedImagesChanged += OnTrackedImagesChanged;
- }
- private void OnDisable()
- {
- ImagerManager.trackedImagesChanged -= OnTrackedImagesChanged;
- }
- private void OnTrackedImagesChanged(ARTrackedImagesChangedEventArgs eventArgs)
- {
- foreach (var trackedImage in eventArgs.added)
- {
- if (!listARTrackedImage.Contains(trackedImage))
- listARTrackedImage.Add(trackedImage);
-
- Debug.Log(trackedImage.name);
- if (oldTrackedImage != trackedImage)
- {
- oldTrackedImage = trackedImage;
- VuforialControl.Instance.TrackingFound(trackedImage.transform, int.Parse(trackedImage.referenceImage.name), 0);
- }
-
- }
- }
-
- private void Update()
- {
- if (oldTrackedImage != null && oldTrackedImage.trackingState != UnityEngine.XR.ARSubsystems.TrackingState.Tracking)
- {
- // 离开识别图
- Debug.Log(" Lost " + oldTrackedImage.name);
- VuforialControl.Instance.TrackingLost(int.Parse(oldTrackedImage.referenceImage.name));
- oldTrackedImage = null;
- }
- foreach (var trackedImage in ImagerManager.trackables)
- {
- // Debug.Log($"Image: {trackedImage.referenceImage.name} is at " +
- // $"{trackedImage.transform.position}"+ $" {trackedImage.trackingState.ToString()} ");
- if (!listARTrackedImage.Contains(trackedImage))
- listARTrackedImage.Add(trackedImage);
- if (trackedImage.trackingState == UnityEngine.XR.ARSubsystems.TrackingState.Tracking)
- {
- // Debug.Log(" This is " + trackedImage.referenceImage.name );
- //if (oldTrackedImage != null && oldTrackedImage != trackedImage)
- //{
- // // 切换操作
- // oldTrackedImage = trackedImage;
- // VuforialControl.Instance.TrackingFound(oldTrackedImage.transform, int.Parse(oldTrackedImage.referenceImage.name), 0);
- //}
- //else if (oldTrackedImage != trackedImage)
- //{
- // // 第一次识别
- // oldTrackedImage = trackedImage;
- // VuforialControl.Instance.TrackingFound(oldTrackedImage.transform, int.Parse(oldTrackedImage.referenceImage.name), 0);
- //}
- if (oldTrackedImage != trackedImage)
- {
- oldTrackedImage = trackedImage;
- VuforialControl.Instance.TrackingFound(trackedImage.transform, int.Parse(trackedImage.referenceImage.name), 0);
- }
- }
- }
- if (listARTrackedImage.Count <1)
- {
-
- return;
- }
-
-
- //if(listARTrackedImage[0].trackingState== UnityEngine.XR.ARSubsystems.TrackingState.Tracking)
- // {
- // state = true;
- // // 跟踪
- // }
- //else if (listARTrackedImage[0].trackingState != UnityEngine.XR.ARSubsystems.TrackingState.Tracking&& state )
- // {
- // state = false;
- // // 暂停跟踪
- // }
- }
- }
|