Fixed EyeTracking and other Issues. Redesigned Replay UI

This commit is contained in:
Thorbjoern
2025-06-14 15:35:08 +02:00
parent 24ef9fd37b
commit 36bd205512
8 changed files with 6188 additions and 5311 deletions
@@ -4,6 +4,7 @@ using UnityEngine;
using System.Threading.Tasks;
using Newtonsoft.Json;
using System;
using Oculus.Interaction;
namespace GhostSystem
{
@@ -13,6 +14,7 @@ namespace GhostSystem
public string SceneId;
public float SampleRate = 0.05f;
public List<Transform> TrackedObjects;
private int doorCount;
private float _timer;
public bool _isRecording;
@@ -39,10 +41,15 @@ namespace GhostSystem
supabaseReady = true;
}
private void HandleSceneIdReady(string id)
private void HandleSceneIdReady(string id, List<GameObject> doors)
{
SceneId = id;
sceneIdReady = true;
foreach (GameObject door in doors)
{
TrackedObjects.Add(door.GetComponentInChildren<OneGrabRotateTransformer>().gameObject.transform);
doorCount++;
}
}
private async void Update()
@@ -107,6 +114,8 @@ namespace GhostSystem
sceneIdReady = false;
OnStopRecord?.Invoke();
Debug.Log($"Stop recording: {SceneId}");
TrackedObjects.RemoveRange( TrackedObjects.Count - doorCount, doorCount );
doorCount = 0;
}
private async Task TestInsert()
@@ -8,6 +8,7 @@ using Postgrest;
using Cysharp.Threading.Tasks;
using UnityEngine.Rendering.Universal;
using System.Globalization;
using Oculus.Interaction;
namespace GhostSystem
{
@@ -46,6 +47,7 @@ namespace GhostSystem
private bool supabaseReady = false;
private bool sceneIdReady = false;
private string loadedSceneId;
private int doorCount;
private DateTime latestLoadedTimestamp;
@@ -74,10 +76,18 @@ namespace GhostSystem
TryInitializeReplay();
}
private void HandleSceneIdReady(string id)
private void HandleSceneIdReady(string id, List<GameObject> doors)
{
sceneIdReady = true;
loadedSceneId = id;
foreach (GameObject door in doors)
{
TrackedObjectBinding trackedObjectBinding = new TrackedObjectBinding();
trackedObjectBinding.objectId = "Door";
trackedObjectBinding.targetObject = door.GetComponentInChildren<OneGrabRotateTransformer>().gameObject;
TrackedObjects.Add(trackedObjectBinding);
doorCount++;
}
TryInitializeReplay();
}
@@ -292,6 +302,12 @@ namespace GhostSystem
SetPlaybackTime(playbackSlider.value * totalDuration);
}
public void RemoveDoors()
{
TrackedObjects.RemoveRange(TrackedObjects.Count - doorCount, doorCount);
doorCount = 0;
}
}
}