using System;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using UnityEngine.XR.ARSubsystems;
using UnityEngine.XR.ARFoundation;
/// This component listens for images detected by the XRImageTrackingSubsystem
/// and overlays some information as well as the source Texture2D on top of the
/// detected image.
///
[RequireComponent(typeof(ARTrackedImageManager))]
public class TrackedImageInfoManager : MonoBehaviour
{
//private Dictionary lastLoggings = new Dictionary();
//[SerializeField]
//[Tooltip("The different sprites used for each imagetracked target.")]
//private Sprite[] sprites;
[SerializeField]
[Tooltip("The camera to set on the world space UI canvas for each instantiated image info.")]
Camera m_WorldSpaceCanvasCamera;
///
/// The prefab has a world space UI canvas,
/// which requires a camera to function properly.
///
public Camera worldSpaceCanvasCamera
{
get { return m_WorldSpaceCanvasCamera; }
set { m_WorldSpaceCanvasCamera = value; }
}
[SerializeField]
[Tooltip("If an image is detected but no source texture can be found, this texture is used instead.")]
Texture2D m_DefaultTexture;
///
/// If an image is detected but no source texture can be found,
/// this texture is used instead.
///
public Texture2D defaultTexture
{
get { return m_DefaultTexture; }
set { m_DefaultTexture = value; }
}
ARTrackedImageManager m_TrackedImageManager;
void Awake()
{
m_TrackedImageManager = GetComponent();
}
void OnEnable()
{
m_TrackedImageManager.trackedImagesChanged += OnTrackedImagesChanged;
}
void OnDisable()
{
m_TrackedImageManager.trackedImagesChanged -= OnTrackedImagesChanged;
}
//void Update()
//{
// foreach (var item in lastLoggings)
// {
// if ((DateTime.Now - item.Value).Seconds > 0)
// {
// ARTrackedImage aRTrackedImage = null;
// foreach (var trackable in m_TrackedImageManager.trackables)
// {
// if (trackable.name == item.Key)
// {
// aRTrackedImage = trackable;
// break;
// }
// }
// if (aRTrackedImage)
// {
// //slet her
// aRTrackedImage.gameObject.SetActive(false);
// }
// }
// }
//}
void UpdateInfo(ARTrackedImage trackedImage)
{
// Set canvas camera
var canvas = trackedImage.GetComponentInChildren