Fixed foveal FOV representation showing all the time in POV and added Possibility to use Timestamps for session selection

This commit is contained in:
Thorbjoern
2025-07-22 00:58:21 +02:00
parent bd04aafa03
commit 440820f65a
4 changed files with 1655 additions and 86 deletions
+101 -78
View File
@@ -210,6 +210,100 @@ Transform:
type: 3} type: 3}
m_PrefabInstance: {fileID: 2998282} m_PrefabInstance: {fileID: 2998282}
m_PrefabAsset: {fileID: 0} m_PrefabAsset: {fileID: 0}
--- !u!1001 &22889914
PrefabInstance:
m_ObjectHideFlags: 0
serializedVersion: 2
m_Modification:
serializedVersion: 3
m_TransformParent: {fileID: 1411186120}
m_Modifications:
- target: {fileID: 3815426379963061937, guid: b52a2a857d903434facf521b55ad8bfd,
type: 3}
propertyPath: m_Layer
value: 10
objectReference: {fileID: 0}
- target: {fileID: 3899975838164203858, guid: b52a2a857d903434facf521b55ad8bfd,
type: 3}
propertyPath: m_Layer
value: 10
objectReference: {fileID: 0}
- target: {fileID: 5059179477758357327, guid: b52a2a857d903434facf521b55ad8bfd,
type: 3}
propertyPath: m_LocalPosition.x
value: 1.3502998
objectReference: {fileID: 0}
- target: {fileID: 5059179477758357327, guid: b52a2a857d903434facf521b55ad8bfd,
type: 3}
propertyPath: m_LocalPosition.y
value: 0.8306
objectReference: {fileID: 0}
- target: {fileID: 5059179477758357327, guid: b52a2a857d903434facf521b55ad8bfd,
type: 3}
propertyPath: m_LocalPosition.z
value: 3.88
objectReference: {fileID: 0}
- target: {fileID: 5059179477758357327, guid: b52a2a857d903434facf521b55ad8bfd,
type: 3}
propertyPath: m_LocalRotation.w
value: 0.7071068
objectReference: {fileID: 0}
- target: {fileID: 5059179477758357327, guid: b52a2a857d903434facf521b55ad8bfd,
type: 3}
propertyPath: m_LocalRotation.x
value: 0.7071068
objectReference: {fileID: 0}
- target: {fileID: 5059179477758357327, guid: b52a2a857d903434facf521b55ad8bfd,
type: 3}
propertyPath: m_LocalRotation.y
value: -0
objectReference: {fileID: 0}
- target: {fileID: 5059179477758357327, guid: b52a2a857d903434facf521b55ad8bfd,
type: 3}
propertyPath: m_LocalRotation.z
value: -0
objectReference: {fileID: 0}
- target: {fileID: 5059179477758357327, guid: b52a2a857d903434facf521b55ad8bfd,
type: 3}
propertyPath: m_LocalEulerAnglesHint.x
value: 90
objectReference: {fileID: 0}
- target: {fileID: 5059179477758357327, guid: b52a2a857d903434facf521b55ad8bfd,
type: 3}
propertyPath: m_LocalEulerAnglesHint.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 5059179477758357327, guid: b52a2a857d903434facf521b55ad8bfd,
type: 3}
propertyPath: m_LocalEulerAnglesHint.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 5583900874407409141, guid: b52a2a857d903434facf521b55ad8bfd,
type: 3}
propertyPath: m_Name
value: SM_Army_Pistol
objectReference: {fileID: 0}
- target: {fileID: 5583900874407409141, guid: b52a2a857d903434facf521b55ad8bfd,
type: 3}
propertyPath: m_Layer
value: 10
objectReference: {fileID: 0}
- target: {fileID: 7590473662579096335, guid: b52a2a857d903434facf521b55ad8bfd,
type: 3}
propertyPath: m_Layer
value: 10
objectReference: {fileID: 0}
m_RemovedComponents: []
m_RemovedGameObjects: []
m_AddedGameObjects: []
m_AddedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: b52a2a857d903434facf521b55ad8bfd, type: 3}
--- !u!4 &22889915 stripped
Transform:
m_CorrespondingSourceObject: {fileID: 5059179477758357327, guid: b52a2a857d903434facf521b55ad8bfd,
type: 3}
m_PrefabInstance: {fileID: 22889914}
m_PrefabAsset: {fileID: 0}
--- !u!65 &36222640 --- !u!65 &36222640
BoxCollider: BoxCollider:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@@ -3123,12 +3217,12 @@ MonoBehaviour:
portals: [] portals: []
enemies: [] enemies: []
targets: targets:
- {fileID: 9149237576655738450} - {fileID: 0}
- {fileID: 9149237576655738449} - {fileID: 0}
- {fileID: 9149237576655738448} - {fileID: 0}
- {fileID: 2587706330484868611} - {fileID: 0}
- {fileID: 2587706330484868610} - {fileID: 0}
- {fileID: 2587706330484868609} - {fileID: 0}
- {fileID: 547639442} - {fileID: 547639442}
- {fileID: 1948336779} - {fileID: 1948336779}
- {fileID: 939495689} - {fileID: 939495689}
@@ -12268,6 +12362,7 @@ Transform:
m_ConstrainProportionsScale: 0 m_ConstrainProportionsScale: 0
m_Children: m_Children:
- {fileID: 547639441} - {fileID: 547639441}
- {fileID: 22889915}
m_Father: {fileID: 0} m_Father: {fileID: 0}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1001 &1414600237 --- !u!1001 &1414600237
@@ -14496,42 +14591,6 @@ PrefabInstance:
m_AddedGameObjects: [] m_AddedGameObjects: []
m_AddedComponents: [] m_AddedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: 08fea625de5a87b49bd99965874b6462, type: 3} m_SourcePrefab: {fileID: 100100000, guid: 08fea625de5a87b49bd99965874b6462, type: 3}
--- !u!114 &2587706330484868609 stripped
MonoBehaviour:
m_CorrespondingSourceObject: {fileID: 6202332535822784841, guid: 08fea625de5a87b49bd99965874b6462,
type: 3}
m_PrefabInstance: {fileID: 2587706330484868608}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 60276d638c326f64e8ef8d871e7bb6fa, type: 3}
m_Name:
m_EditorClassIdentifier:
--- !u!114 &2587706330484868610 stripped
MonoBehaviour:
m_CorrespondingSourceObject: {fileID: 4459343905502976638, guid: 08fea625de5a87b49bd99965874b6462,
type: 3}
m_PrefabInstance: {fileID: 2587706330484868608}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 60276d638c326f64e8ef8d871e7bb6fa, type: 3}
m_Name:
m_EditorClassIdentifier:
--- !u!114 &2587706330484868611 stripped
MonoBehaviour:
m_CorrespondingSourceObject: {fileID: 6409697334092588290, guid: 08fea625de5a87b49bd99965874b6462,
type: 3}
m_PrefabInstance: {fileID: 2587706330484868608}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 60276d638c326f64e8ef8d871e7bb6fa, type: 3}
m_Name:
m_EditorClassIdentifier:
--- !u!1001 &9149237576655738447 --- !u!1001 &9149237576655738447
PrefabInstance: PrefabInstance:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@@ -14625,42 +14684,6 @@ PrefabInstance:
m_AddedGameObjects: [] m_AddedGameObjects: []
m_AddedComponents: [] m_AddedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: ee8120ab795dd634c92c812ffffad831, type: 3} m_SourcePrefab: {fileID: 100100000, guid: ee8120ab795dd634c92c812ffffad831, type: 3}
--- !u!114 &9149237576655738448 stripped
MonoBehaviour:
m_CorrespondingSourceObject: {fileID: 177172771931538304, guid: ee8120ab795dd634c92c812ffffad831,
type: 3}
m_PrefabInstance: {fileID: 9149237576655738447}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 60276d638c326f64e8ef8d871e7bb6fa, type: 3}
m_Name:
m_EditorClassIdentifier:
--- !u!114 &9149237576655738449 stripped
MonoBehaviour:
m_CorrespondingSourceObject: {fileID: 6929469630982117874, guid: ee8120ab795dd634c92c812ffffad831,
type: 3}
m_PrefabInstance: {fileID: 9149237576655738447}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 60276d638c326f64e8ef8d871e7bb6fa, type: 3}
m_Name:
m_EditorClassIdentifier:
--- !u!114 &9149237576655738450 stripped
MonoBehaviour:
m_CorrespondingSourceObject: {fileID: 937006190045341451, guid: ee8120ab795dd634c92c812ffffad831,
type: 3}
m_PrefabInstance: {fileID: 9149237576655738447}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 60276d638c326f64e8ef8d871e7bb6fa, type: 3}
m_Name:
m_EditorClassIdentifier:
--- !u!1660057539 &9223372036854775807 --- !u!1660057539 &9223372036854775807
SceneRoots: SceneRoots:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
File diff suppressed because it is too large Load Diff
@@ -58,6 +58,9 @@ namespace GhostSystem
public GameObject loadingScreen; public GameObject loadingScreen;
string startTimeString;
string endTimeString;
[Serializable] [Serializable]
public class TrackedObjectBinding public class TrackedObjectBinding
{ {
@@ -115,12 +118,26 @@ namespace GhostSystem
public async UniTask LoadAllFrames() public async UniTask LoadAllFrames()
{ {
Debug.Log("SceneId used in query: " + sceneId); Debug.Log("SceneId used in query: " + sceneId);
Debug.Log("StartTime filter: " + dateSelector.selectedDateTime().ToString("o"));
Debug.Log("EndTime filter: " + dateSelector.EndTime().ToString("o"));
var startTime = dateSelector.selectedDateTime(); var startTime = dateSelector.selectedDateTime();
var endTime = dateSelector.EndTime(); var endTime = dateSelector.EndTime();
if (dateSelector.startTimeInput.text != "")
{
startTimeString = dateSelector.startTimeInput.text;
}
else startTimeString = startTime.ToString("o");
if (dateSelector.endTimeInput.text != "")
{
endTimeString = dateSelector.endTimeInput.text;
}
else endTimeString = endTime.ToString("o");
Debug.Log("StartTime filter: " + startTimeString);
Debug.Log("EndTime filter: " + endTimeString);
objectTracks.Clear(); objectTracks.Clear();
int batchSize = 1000; int batchSize = 1000;
int offset = 0; int offset = 0;
@@ -130,8 +147,8 @@ namespace GhostSystem
while (more) while (more)
{ {
List<IPostgrestQueryFilter> timestampFilter = new List<IPostgrestQueryFilter>(); List<IPostgrestQueryFilter> timestampFilter = new List<IPostgrestQueryFilter>();
timestampFilter.Add(new QueryFilter("timestamp", Postgrest.Constants.Operator.GreaterThanOrEqual, startTime.ToString("o"))); timestampFilter.Add(new QueryFilter("timestamp", Postgrest.Constants.Operator.GreaterThanOrEqual, startTimeString));
timestampFilter.Add(new QueryFilter("timestamp", Postgrest.Constants.Operator.LessThan, endTime.ToString("o"))); timestampFilter.Add(new QueryFilter("timestamp", Postgrest.Constants.Operator.LessThan, endTimeString));
var query = SupabaseManager.instance.supabase var query = SupabaseManager.instance.supabase
.From<FrameModel>() .From<FrameModel>()
@@ -185,11 +202,12 @@ namespace GhostSystem
private async UniTask LoadNewFramesAfter(DateTime afterTime) // lädt einen neuen Batch nach. private async UniTask LoadNewFramesAfter(DateTime afterTime) // lädt einen neuen Batch nach.
{ {
var endTime = dateSelector.EndTime(); //var endTime = dateSelector.EndTime();
Debug.Log("Load After EndTime filter: " + endTimeString);
List<IPostgrestQueryFilter> timestampFilter = new List<IPostgrestQueryFilter>(); List<IPostgrestQueryFilter> timestampFilter = new List<IPostgrestQueryFilter>();
timestampFilter.Add(new QueryFilter("timestamp", Postgrest.Constants.Operator.GreaterThan, afterTime.ToString("o"))); timestampFilter.Add(new QueryFilter("timestamp", Postgrest.Constants.Operator.GreaterThan, afterTime.ToString("o")));
timestampFilter.Add(new QueryFilter("timestamp", Postgrest.Constants.Operator.LessThan, endTime.ToString("o"))); timestampFilter.Add(new QueryFilter("timestamp", Postgrest.Constants.Operator.LessThan, endTimeString));
var query = SupabaseManager.instance.supabase var query = SupabaseManager.instance.supabase
.From<FrameModel>() .From<FrameModel>()
+4
View File
@@ -1,6 +1,7 @@
using System; using System;
using System.Collections; using System.Collections;
using System.Collections.Generic; using System.Collections.Generic;
using TMPro;
using UnityEngine; using UnityEngine;
public class DateSelector : MonoBehaviour public class DateSelector : MonoBehaviour
@@ -11,6 +12,8 @@ public class DateSelector : MonoBehaviour
public int selectedHour; public int selectedHour;
public int selectedMinute; public int selectedMinute;
public int duration; public int duration;
public TMP_InputField startTimeInput;
public TMP_InputField endTimeInput;
public void SetYear(int yearIndex) public void SetYear(int yearIndex)
{ {
@@ -43,6 +46,7 @@ public class DateSelector : MonoBehaviour
} }
public DateTime selectedDateTime() public DateTime selectedDateTime()
{ {
DateTime dateAndTime = new DateTime(selectedYear, selectedMonth, selectedDay, selectedHour, selectedMinute, 0, DateTimeKind.Utc); DateTime dateAndTime = new DateTime(selectedYear, selectedMonth, selectedDay, selectedHour, selectedMinute, 0, DateTimeKind.Utc);
return dateAndTime; return dateAndTime;
} }