This commit is contained in:
2025-08-13 18:07:31 +08:00
parent 886a87777a
commit 5ad59475fe
4 changed files with 171 additions and 171 deletions

View File

@@ -1,52 +1,52 @@
using Stary.Evo.Editor;
using UnityEditor;
using UnityEngine;
namespace Stary.Evo.RKTools
{
[CustomEditor(typeof(ARTrackedImageEvoObj))]
public class ARTrackedImageEvoObjEditor : UnityEditor.Editor
{
/// <summary>
/// 序列化属性在OnEnable中获取
/// </summary>
private SerializedProperty domain;
private SerializedProperty trackedTransform;
/// <summary>
private string[] domainNames;
private void OnEnable()
{
domain = serializedObject.FindProperty("domain");
trackedTransform = serializedObject.FindProperty("trackedTransform");
domainNames = CreatAssetWindow.GetCreatDomainAllName();
}
public override void OnInspectorGUI()
{
serializedObject.Update();
// 获取当前选中的索引
int selectedIndex = System.Array.IndexOf(domainNames, domain.stringValue);
if (selectedIndex < 0) selectedIndex = 0; // 默认选中第一个
// 绘制下拉选择框
selectedIndex = EditorGUILayout.Popup("Domain", selectedIndex, domainNames);
// 更新选择的域名
domain.stringValue = domainNames[selectedIndex];
EditorGUI.BeginChangeCheck();
var newTrackedTransform
= EditorGUILayout.ObjectField(new GUIContent("Tracked Transform"), trackedTransform.objectReferenceValue, typeof(Transform), true) as Transform;
if (EditorGUI.EndChangeCheck())
{
trackedTransform.objectReferenceValue = newTrackedTransform;
}
serializedObject.ApplyModifiedProperties();
base.OnInspectorGUI();
}
}
}
// using Stary.Evo.Editor;
// using UnityEditor;
// using UnityEngine;
//
// namespace Stary.Evo.RKTools
// {
// [CustomEditor(typeof(ARTrackedImageEvoObj))]
// public class ARTrackedImageEvoObjEditor : UnityEditor.Editor
// {
// /// <summary>
// /// 序列化属性在OnEnable中获取
// /// </summary>
// private SerializedProperty domain;
//
// private SerializedProperty trackedTransform;
//
// /// <summary>
// private string[] domainNames;
//
// private void OnEnable()
// {
// domain = serializedObject.FindProperty("domain");
// trackedTransform = serializedObject.FindProperty("trackedTransform");
// domainNames = CreatAssetWindow.GetCreatDomainAllName();
// }
//
// public override void OnInspectorGUI()
// {
// serializedObject.Update();
//
// // 获取当前选中的索引
// int selectedIndex = System.Array.IndexOf(domainNames, domain.stringValue);
// if (selectedIndex < 0) selectedIndex = 0; // 默认选中第一个
//
// // 绘制下拉选择框
// selectedIndex = EditorGUILayout.Popup("Domain", selectedIndex, domainNames);
//
// // 更新选择的域名
// domain.stringValue = domainNames[selectedIndex];
//
// EditorGUI.BeginChangeCheck();
// var newTrackedTransform
// = EditorGUILayout.ObjectField(new GUIContent("Tracked Transform"), trackedTransform.objectReferenceValue, typeof(Transform), true) as Transform;
// if (EditorGUI.EndChangeCheck())
// {
// trackedTransform.objectReferenceValue = newTrackedTransform;
// }
// serializedObject.ApplyModifiedProperties();
// base.OnInspectorGUI();
// }
// }
// }

View File

@@ -1,37 +1,37 @@
using System;
using System.Collections;
using System.Collections.Generic;
using Rokid.UXR.Module;
using UnityEngine;
namespace Stary.Evo.RKTools
{
public class ARTrackedImageEvoObj : ARTrackedImageObj
{
[HideInInspector]
public string domain;
[HideInInspector]
public Transform trackedTransform;
public void Awake()
{
if (trackedTransform == null)
{
trackedTransform=this.transform;
Debug.Log("StaryEvo:TrackedImageEvoObj: trackedTransform 未赋值,以自动赋值为自身");
}
OnARTrackedImageAdded.AddListener(OnARTrackedImageAddedEvent); ;
}
private void OnARTrackedImageAddedEvent(ARTrackedImageObj obj)
{
TrackedImageEvoManager trackedImageEvoManager = ARTrackedImageManager.Instance as TrackedImageEvoManager;
trackedImageEvoManager.SetTrackedImageEvoData(trackedImageIndex,domain,trackedTransform);
}
public void OnDestroy()
{
OnARTrackedImageAdded.RemoveListener(OnARTrackedImageAddedEvent);
}
}
}
// using System;
// using System.Collections;
// using System.Collections.Generic;
// using Rokid.UXR.Module;
// using UnityEngine;
//
// namespace Stary.Evo.RKTools
// {
// public class ARTrackedImageEvoObj : ARTrackedImageObj
// {
// [HideInInspector]
// public string domain;
// [HideInInspector]
// public Transform trackedTransform;
//
// public void Awake()
// {
// if (trackedTransform == null)
// {
// trackedTransform=this.transform;
// Debug.Log("StaryEvo:TrackedImageEvoObj: trackedTransform 未赋值,以自动赋值为自身");
// }
// OnARTrackedImageAdded.AddListener(OnARTrackedImageAddedEvent); ;
// }
//
// private void OnARTrackedImageAddedEvent(ARTrackedImageObj obj)
// {
// TrackedImageEvoManager trackedImageEvoManager = ARTrackedImageManager.Instance as TrackedImageEvoManager;
// trackedImageEvoManager.SetTrackedImageEvoData(trackedImageIndex,domain,trackedTransform);
// }
//
// public void OnDestroy()
// {
// OnARTrackedImageAdded.RemoveListener(OnARTrackedImageAddedEvent);
// }
// }
// }

View File

@@ -1,81 +1,81 @@
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;
}
}
// 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;
// }
// }

View File

@@ -1,6 +1,6 @@
{
"name": "com.staryevo.rktools",
"version": "1.0.7",
"version": "1.1.0",
"displayName": "07.RKTools",
"description": "Rokid工具",
"unity": "2021.3",