Files
plugin-library/Assets/07.RKTools/RunTime/TrackedImage/TrackedImageEvoManager.cs
2025-05-19 16:14:25 +08:00

81 lines
2.6 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
using System;
using System.Collections.Generic;
using Rokid.UXR.Module;
using Sirenix.OdinInspector;
using UnityEngine;
namespace Stary.Evo.RKTools
{
public class TrackedImageEvoManager : ARTrackedImageManager
{
[TableList] public List<TarkedImageEvoData> TrackedImages;
private void Start()
{
TrackedImages = new List<TarkedImageEvoData>();
}
public TarkedImageEvoData GetTrackedImageEvoData(int imageIndex)
{
foreach (var imageEvoData in TrackedImages)
{
if (imageEvoData.imageIndex == imageIndex)
{
return imageEvoData;
}
}
Debug.LogError($"StaryEvo:未找到对应的图片的id数据请检查是否进行前置识别 index:{imageIndex}");
return null;
}
public void SetTrackedImageEvoData(int imageIndex,string domain, Transform transform)
{
foreach (var imageEvoData in TrackedImages)
{
if (imageEvoData.imageIndex == imageIndex)
{
imageEvoData.position = transform.position;
imageEvoData.rotation = transform.eulerAngles;
imageEvoData.scale = transform.localScale;
}
}
}
public TarkedImageEvoData GetTrackedImageEvoData(string domain)
{
foreach (var imageEvoData in TrackedImages)
{
if (imageEvoData.domain == domain)
{
return imageEvoData;
}
}
Debug.LogError($"StaryEvo:未找到对应的domain的id数据请检查是否进行前置识别 domain:{domain}");
return null;
}
public void SetTrackedImageEvoData(string domain, Transform transform)
{
foreach (var imageEvoData in TrackedImages)
{
if (imageEvoData.domain == domain)
{
imageEvoData.position = transform.position;
imageEvoData.rotation = transform.eulerAngles;
imageEvoData.scale = transform.localScale;
}
}
}
}
[Serializable]
public class TarkedImageEvoData
{
[VerticalGroup("key")] public string domain;
[VerticalGroup("key")] public int imageIndex;
[VerticalGroup("transform")] public Vector3 position;
[VerticalGroup("transform")] public Vector3 rotation;
[VerticalGroup("transform")] public Vector3 scale;
}
}