1
0
forked from cgvr/DeltaVR

3 Commits

15 changed files with 360 additions and 49 deletions

View File

@@ -1,17 +1,10 @@
### TODO
* glTF loading: vahetada ära shader Universal render pipelin Lit, mitte panna buildi kaasa glTf oma
* user flow: grab item? mida krabada
* user prefs: settinguid meelde jätta
* võtta spawnitud mudeli mõõtmed: meshcollideri max x, max y, etc? bounding box?
* mängija collide'ib spawnitud mudeliga - ei tohiks
* shape scanner:
* initialisation correct number of confs
* mitte-liigutatavaks, aga samal ajal kõrgus dünaamiliselt õige. või lihtsalt piisavalt madalale asetada või väljaulatuv kang millest krabada
* peenikesemad kiired
* mitte lihtsalt ontriggerenter ja -exit, sest kui mitu objekti lähevad samal ajal sisse
* kui mudel despawnib shape scanneri kiirte sees olles siis collision detection läheb katki
* mustad kiired on halvasti nähtavad pruuni materjali taustal
* kui üks config completed, siis mängijale aru saada: sound effect, "loading"
* speech-to-text:
* vana tekst ei kao ära
* kogu tekst muutub ootamatult "Silence"-iks
@@ -24,6 +17,10 @@
* klaas on näha temast eespool
* pööramine kaamera poole - sujuvalt (slerp)
Can't/Won't Do:
* glTF loading: vahetada ära shader Universal render pipelin Lit, mitte panna buildi kaasa glTf oma - **ei saa, objekt on siis ilma tekstuurita, lihtsalt hall**
* user prefs: settinguid meelde jätta - **juba sain continuous movementi sisse lülitada by default, rohkem pole vaja**
### Notes
* TRELLIS: added functionality to specify texture baking optimisation total steps as an argument (`texture_opt_total_steps`), to replace the hardcoded 2500. But this is not tracked in Git (because modified this https://github.com/IgorAherne/trellis-stable-projectorz/releases/tag/latest)

View File

@@ -399,7 +399,7 @@ GameObject:
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
m_IsActive: 0
--- !u!224 &4260766096620860208
RectTransform:
m_ObjectHideFlags: 0
@@ -1298,7 +1298,7 @@ GameObject:
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 0
m_IsActive: 1
--- !u!224 &5995638939731525439
RectTransform:
m_ObjectHideFlags: 0
@@ -8112,7 +8112,7 @@ MonoBehaviour:
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 8807789255226040880}
m_Enabled: 0
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 0bf296fc962d7184ab14ad1841598d5f, type: 3}
m_Name:

View File

@@ -19,7 +19,7 @@ public class ContinuoslocomotionConfigurator : MonoBehaviour
{
turnOnButton.onClick.AddListener(enableLocomotion);
turnOffButton.onClick.AddListener(disableLocomotion);
turnOffButton.gameObject.SetActive(false);
turnOnButton.gameObject.SetActive(false);
}
public void UpdateSpeed(float speed)

View File

@@ -90,6 +90,7 @@ GameObject:
- component: {fileID: 584286906844083765}
- component: {fileID: 6105090838799004608}
- component: {fileID: 6238040606326453210}
- component: {fileID: 7699707098595015193}
- component: {fileID: 1155083335105893391}
- component: {fileID: 1413215456818694348}
- component: {fileID: 483845010817450077}
@@ -165,7 +166,7 @@ MonoBehaviour:
m_FallbackScreenDPI: 96
m_DefaultSpriteDPI: 96
m_DynamicPixelsPerUnit: 1
m_PresetInfoIsWorld: 0
m_PresetInfoIsWorld: 1
--- !u!114 &6105090838799004608
MonoBehaviour:
m_ObjectHideFlags: 0
@@ -198,6 +199,31 @@ MonoBehaviour:
mouthTransform: {fileID: 5759406807219530703}
mouthScalingMultiplier: 2.5
mouthMovementDuration: 0.25
voiceLineKeys: []
--- !u!114 &7699707098595015193
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 4663194936290788516}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 6c6205a218222364ca440c740b7a6b8f, type: 3}
m_Name:
m_EditorClassIdentifier:
SelectAudio:
Guid:
Data1: 0
Data2: 0
Data3: 0
Data4: 0
Path:
SoundOcclusionWidening: 1
PlayerOcclusionWidening: 1
OcclusionLayer:
serializedVersion: 2
m_Bits: 0
--- !u!135 &1155083335105893391
SphereCollider:
m_ObjectHideFlags: 0

View File

@@ -14,6 +14,7 @@ GameObject:
- component: {fileID: 2166102850012183631}
- component: {fileID: 8356602476881383464}
- component: {fileID: 5682436338090300270}
- component: {fileID: 5910538061401192019}
m_Layer: 0
m_Name: ModelGenerationManager
m_TagString: Untagged
@@ -60,9 +61,7 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: 4591f6805db240a4ca28e515091ca909, type: 3}
m_Name:
m_EditorClassIdentifier:
INVOKEAI_BASE_URL: http://ltat-cgvr9.domenis.ut.ee:9090
DEFAULT_QUEUE_ID: default
MODEL_KEY: 81d45960-08a0-4b8c-a48b-e7d73b21bfe2
promptSuffix: ', single object, front and side fully visible, realistic style,
plain neutral background, clear details, soft studio lighting, true-to-scale'
--- !u!114 &2166102850012183631
@@ -77,7 +76,6 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: 905247c726697644cbf0f39558db46bb, type: 3}
m_Name:
m_EditorClassIdentifier:
TRELLIS_BASE_URL: http://ltat-cgvr9.domenis.ut.ee:7960
--- !u!114 &8356602476881383464
MonoBehaviour:
m_ObjectHideFlags: 0
@@ -131,3 +129,15 @@ MonoBehaviour:
bufferLengthSec: 5
playLoopback: 0
loopbackVolume: 1
--- !u!114 &5910538061401192019
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 154411548685861447}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 6a9ed26713a3c4c4f8f6be3bbd4af5c7, type: 3}
m_Name:
m_EditorClassIdentifier:

View File

@@ -1,5 +1,112 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!1 &709153202497655716
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 3247357557719671279}
- component: {fileID: 7256125702820162016}
- component: {fileID: 8711103819910437103}
- component: {fileID: 2373810972321806103}
m_Layer: 2
m_Name: Handle (1)
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &3247357557719671279
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 709153202497655716}
m_LocalRotation: {x: -0.92387974, y: -0.3826829, z: 0.000000113925715, w: -0.00000035363863}
m_LocalPosition: {x: -0.406, y: -0.242, z: -0.009}
m_LocalScale: {x: 0.036143623, y: 0.16946283, z: 0.036143623}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 8294461198356057691}
m_RootOrder: -1
m_LocalEulerAnglesHint: {x: -180, y: 0, z: -45}
--- !u!33 &7256125702820162016
MeshFilter:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 709153202497655716}
m_Mesh: {fileID: 10206, guid: 0000000000000000e000000000000000, type: 0}
--- !u!23 &8711103819910437103
MeshRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 709153202497655716}
m_Enabled: 1
m_CastShadows: 1
m_ReceiveShadows: 1
m_DynamicOccludee: 1
m_StaticShadowCaster: 0
m_MotionVectors: 1
m_LightProbeUsage: 1
m_ReflectionProbeUsage: 1
m_RayTracingMode: 2
m_RayTraceProcedural: 0
m_RenderingLayerMask: 1
m_RendererPriority: 0
m_Materials:
- {fileID: 2100000, guid: a8775aa86c058ce4986d3749a7d0c86e, type: 2}
m_StaticBatchInfo:
firstSubMesh: 0
subMeshCount: 0
m_StaticBatchRoot: {fileID: 0}
m_ProbeAnchor: {fileID: 0}
m_LightProbeVolumeOverride: {fileID: 0}
m_ScaleInLightmap: 1
m_ReceiveGI: 1
m_PreserveUVs: 0
m_IgnoreNormalsForChartDetection: 0
m_ImportantGI: 0
m_StitchLightmapSeams: 1
m_SelectedEditorRenderState: 3
m_MinimumChartSize: 4
m_AutoUVMaxDistance: 0.5
m_AutoUVMaxAngle: 89
m_LightmapParameters: {fileID: 0}
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 0
m_AdditionalVertexStreams: {fileID: 0}
--- !u!136 &2373810972321806103
CapsuleCollider:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 709153202497655716}
m_Material: {fileID: 0}
m_IncludeLayers:
serializedVersion: 2
m_Bits: 0
m_ExcludeLayers:
serializedVersion: 2
m_Bits: 0
m_LayerOverridePriority: 0
m_IsTrigger: 0
m_ProvidesContacts: 0
m_Enabled: 1
serializedVersion: 2
m_Radius: 0.5000001
m_Height: 2
m_Direction: 1
m_Center: {x: 0.000000059604645, y: 0, z: -0.00000008940697}
--- !u!1 &1013838101896458198
GameObject:
m_ObjectHideFlags: 0
@@ -12,7 +119,7 @@ GameObject:
- component: {fileID: 2969912182040882308}
- component: {fileID: 2891308580412767560}
- component: {fileID: 8157435207705226294}
m_Layer: 0
m_Layer: 2
m_Name: Cube (1)
m_TagString: Untagged
m_Icon: {fileID: 0}
@@ -27,7 +134,7 @@ Transform:
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1013838101896458198}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalPosition: {x: 0, y: 0.143, z: 0}
m_LocalScale: {x: 0.6, y: 0.03, z: 0.6}
m_ConstrainProportionsScale: 0
m_Children: []
@@ -116,7 +223,7 @@ GameObject:
- component: {fileID: 8594417542550664647}
- component: {fileID: 7869926060146003813}
- component: {fileID: 5476518908687164580}
m_Layer: 0
m_Layer: 2
m_Name: CurrentConfigurationDisplay
m_TagString: Untagged
m_Icon: {fileID: 0}
@@ -254,7 +361,7 @@ GameObject:
serializedVersion: 6
m_Component:
- component: {fileID: 8025195334996356355}
m_Layer: 0
m_Layer: 2
m_Name: Corner2
m_TagString: Untagged
m_Icon: {fileID: 0}
@@ -285,7 +392,7 @@ GameObject:
serializedVersion: 6
m_Component:
- component: {fileID: 4362133469817120903}
m_Layer: 0
m_Layer: 2
m_Name: RayParent
m_TagString: Untagged
m_Icon: {fileID: 0}
@@ -300,7 +407,7 @@ Transform:
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1598434951760464124}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: -0.225, z: 0}
m_LocalPosition: {x: 0, y: -0.082, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children:
@@ -320,7 +427,7 @@ GameObject:
- component: {fileID: 6932860525531626823}
- component: {fileID: 7714109504095032940}
- component: {fileID: 6725626179204001352}
m_Layer: 0
m_Layer: 2
m_Name: Panel
m_TagString: Untagged
m_Icon: {fileID: 0}
@@ -399,7 +506,7 @@ GameObject:
- component: {fileID: 8384342510111058824}
- component: {fileID: 5271028056213577304}
- component: {fileID: 903504955742171526}
m_Layer: 0
m_Layer: 2
m_Name: Cube
m_TagString: Untagged
m_Icon: {fileID: 0}
@@ -414,7 +521,7 @@ Transform:
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3769602036287398038}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: -0.5, z: 0}
m_LocalPosition: {x: 0, y: -0.357, z: 0}
m_LocalScale: {x: 0.6, y: 0.03, z: 0.6}
m_ConstrainProportionsScale: 0
m_Children: []
@@ -501,7 +608,7 @@ GameObject:
serializedVersion: 6
m_Component:
- component: {fileID: 4055409281532582849}
m_Layer: 0
m_Layer: 2
m_Name: Corner1
m_TagString: Untagged
m_Icon: {fileID: 0}
@@ -534,7 +641,7 @@ GameObject:
- component: {fileID: 6492405423818451632}
- component: {fileID: 489185111762359262}
- component: {fileID: 7443612957244256760}
m_Layer: 0
m_Layer: 2
m_Name: CorrectPercentageDisplay
m_TagString: Untagged
m_Icon: {fileID: 0}
@@ -673,7 +780,8 @@ GameObject:
- component: {fileID: 1587203061162103481}
- component: {fileID: 6146655625910388013}
- component: {fileID: 4552742491559429175}
m_Layer: 0
- component: {fileID: 5496564390542954758}
m_Layer: 2
m_Name: ShapeScanner
m_TagString: Untagged
m_Icon: {fileID: 0}
@@ -692,6 +800,8 @@ Transform:
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 8855038928906100706}
- {fileID: 3247357557719671279}
- {fileID: 4967077837470103189}
- {fileID: 1593515563768306183}
- {fileID: 4362133469817120903}
@@ -783,7 +893,9 @@ MonoBehaviour:
m_Name:
m_EditorClassIdentifier:
m_InteractionManager: {fileID: 0}
m_Colliders: []
m_Colliders:
- {fileID: 3751126057824971022}
- {fileID: 2373810972321806103}
m_InteractionLayerMask:
serializedVersion: 2
m_Bits: 4294967295
@@ -859,7 +971,7 @@ MonoBehaviour:
m_OnDeactivate:
m_PersistentCalls:
m_Calls: []
m_AttachTransform: {fileID: 0}
m_AttachTransform: {fileID: 8855038928906100706}
m_SecondaryAttachTransform: {fileID: 0}
m_UseDynamicAttach: 1
m_MatchAttachPosition: 1
@@ -905,6 +1017,27 @@ MonoBehaviour:
m_StartingSingleGrabTransformers: []
m_StartingMultipleGrabTransformers: []
m_AddDefaultGrabTransformers: 1
--- !u!65 &5496564390542954758
BoxCollider:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 6798688590405535079}
m_Material: {fileID: 0}
m_IncludeLayers:
serializedVersion: 2
m_Bits: 0
m_ExcludeLayers:
serializedVersion: 2
m_Bits: 0
m_LayerOverridePriority: 0
m_IsTrigger: 1
m_ProvidesContacts: 0
m_Enabled: 1
serializedVersion: 3
m_Size: {x: 0.75, y: 0.75, z: 0.75}
m_Center: {x: 0, y: 0, z: 0}
--- !u!1 &8844992431392597936
GameObject:
m_ObjectHideFlags: 0
@@ -917,7 +1050,7 @@ GameObject:
- component: {fileID: 2825347825077556369}
- component: {fileID: 3521071293198874823}
- component: {fileID: 106131459206684253}
m_Layer: 0
m_Layer: 2
m_Name: Canvas
m_TagString: Untagged
m_Icon: {fileID: 0}
@@ -942,7 +1075,7 @@ RectTransform:
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: 0, y: 0.16}
m_AnchoredPosition: {x: 0, y: 0.31300017}
m_SizeDelta: {x: 50, y: 30}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!223 &2825347825077556369
@@ -1007,3 +1140,110 @@ MonoBehaviour:
m_BlockingMask:
serializedVersion: 2
m_Bits: 4294967295
--- !u!1 &9220381957138534729
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 8855038928906100706}
- component: {fileID: 3571859133888751127}
- component: {fileID: 5654644871419857071}
- component: {fileID: 3751126057824971022}
m_Layer: 2
m_Name: Handle
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &8855038928906100706
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 9220381957138534729}
m_LocalRotation: {x: -0.3826839, y: -0.9238794, z: 0.00000033061798, w: -0.00000016950273}
m_LocalPosition: {x: -0.417, y: 0.013, z: -0.009}
m_LocalScale: {x: 0.036143623, y: 0.17785089, z: 0.036143623}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 8294461198356057691}
m_RootOrder: -1
m_LocalEulerAnglesHint: {x: -180, y: 0, z: -135}
--- !u!33 &3571859133888751127
MeshFilter:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 9220381957138534729}
m_Mesh: {fileID: 10206, guid: 0000000000000000e000000000000000, type: 0}
--- !u!23 &5654644871419857071
MeshRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 9220381957138534729}
m_Enabled: 1
m_CastShadows: 1
m_ReceiveShadows: 1
m_DynamicOccludee: 1
m_StaticShadowCaster: 0
m_MotionVectors: 1
m_LightProbeUsage: 1
m_ReflectionProbeUsage: 1
m_RayTracingMode: 2
m_RayTraceProcedural: 0
m_RenderingLayerMask: 1
m_RendererPriority: 0
m_Materials:
- {fileID: 2100000, guid: a8775aa86c058ce4986d3749a7d0c86e, type: 2}
m_StaticBatchInfo:
firstSubMesh: 0
subMeshCount: 0
m_StaticBatchRoot: {fileID: 0}
m_ProbeAnchor: {fileID: 0}
m_LightProbeVolumeOverride: {fileID: 0}
m_ScaleInLightmap: 1
m_ReceiveGI: 1
m_PreserveUVs: 0
m_IgnoreNormalsForChartDetection: 0
m_ImportantGI: 0
m_StitchLightmapSeams: 1
m_SelectedEditorRenderState: 3
m_MinimumChartSize: 4
m_AutoUVMaxDistance: 0.5
m_AutoUVMaxAngle: 89
m_LightmapParameters: {fileID: 0}
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 0
m_AdditionalVertexStreams: {fileID: 0}
--- !u!136 &3751126057824971022
CapsuleCollider:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 9220381957138534729}
m_Material: {fileID: 0}
m_IncludeLayers:
serializedVersion: 2
m_Bits: 0
m_ExcludeLayers:
serializedVersion: 2
m_Bits: 0
m_LayerOverridePriority: 0
m_IsTrigger: 0
m_ProvidesContacts: 0
m_Enabled: 1
serializedVersion: 2
m_Radius: 0.5000001
m_Height: 2
m_Direction: 1
m_Center: {x: 0.000000059604645, y: 0, z: -0.00000008940697}

View File

@@ -28,8 +28,8 @@ Transform:
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 8688612914795219519}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0.259, y: 0.012, z: -0.26886}
m_LocalScale: {x: 0.035, y: 0.5, z: 0.035}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 0.025, y: 0.5, z: 0.025}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 0}

View File

@@ -36,7 +36,10 @@ public class MicrophoneStand : MonoBehaviour
microphoneOffStatus.SetActive(false);
microphoneOnStatus.SetActive(true);
AudioManager.Instance.PlayAttachedInstance(FMODEvents.Instance.RadioButton, gameObject);
if (npcController != null)
{
npcController.SpeakVoiceLine(1);
}
fmodWhisperBridge.ActivateRecording();
}
}
@@ -49,7 +52,10 @@ public class MicrophoneStand : MonoBehaviour
microphoneOffStatus.SetActive(true);
microphoneOnStatus.SetActive(false);
AudioManager.Instance.PlayAttachedInstance(FMODEvents.Instance.RadioButton, gameObject);
if (npcController != null)
{
npcController.SpeakVoiceLine(2);
}
fmodWhisperBridge.DeactivateRecording();
}
}

View File

@@ -6,7 +6,7 @@ public class ConfigManager : MonoBehaviour
{
public GameConfig Config { get; private set; }
public static ConfigManager Instance { get; private set; }
private static string configPath => Path.Combine(Application.persistentDataPath, "config.json");
public static string configPath = "config.json";
private void Awake()
{

View File

@@ -2,7 +2,7 @@
[System.Serializable]
public class GameConfig
{
public string invokeAIUrl = "http://192.168.0.53:9090";
public string invokeAIModelKey = "81d45960-08a0-4b8c-a48b-e7d73b21bfe2";
public string InvokeAIUrl = "http://192.168.0.53:9090";
public string InvokeAIModelKey = "81d45960-08a0-4b8c-a48b-e7d73b21bfe2";
public string TrellisUrl = "http://192.168.0.53:7960";
}

View File

@@ -31,7 +31,7 @@ public class InvokeAiClient : MonoBehaviour
{
Timeout = TimeSpan.FromSeconds(120)
};
httpClient.BaseAddress = new Uri(ConfigManager.Instance.Config.invokeAIUrl);
httpClient.BaseAddress = new Uri(ConfigManager.Instance.Config.InvokeAIUrl);
}
// Update is called once per frame
@@ -516,7 +516,7 @@ public class InvokeAiClient : MonoBehaviour
public async Task<byte[]> GenerateImage(string prompt)
{
string modelKey = ConfigManager.Instance.Config.invokeAIModelKey;
string modelKey = ConfigManager.Instance.Config.InvokeAIModelKey;
string refinedPrompt = prompt + promptSuffix;
JObject args = new JObject()
{

View File

@@ -1,9 +1,6 @@
using FishNet.Component.Transforming;
using FishNet.Object;
using System;
using UnityEngine;
using UnityEngine.UI;
using UnityEngine.XR.Interaction.Toolkit;
public class ShapeDetectionMinigameController : MonoBehaviour
{
@@ -16,6 +13,7 @@ public class ShapeDetectionMinigameController : MonoBehaviour
public GameObject GeneratedModel { get; private set; }
public Transform modelSpawnPoint;
public string shapeScannerTag = "ShapeScannable";
public int ignorePlayerCollisionLayer = 2;
private bool modelGenerationInProgress;
@@ -57,8 +55,12 @@ public class ShapeDetectionMinigameController : MonoBehaviour
GameObject spawnedObject = await ModelGenerationUtils.Instance.SpawnModel(encodedModel);
InitializeSpawnedObject(spawnedObject);
// Destroy previous generated object
Destroy(GeneratedModel);
if (GeneratedModel != null)
{
// Destroy previous generated object (first move out of ShapeScanner to trigger OnTriggerExit
GeneratedModel.transform.position = Vector3.zero;
//Destroy(GeneratedModel);
}
GeneratedModel = spawnedObject;
modelGenerationButton.Deactivate();
@@ -70,6 +72,7 @@ public class ShapeDetectionMinigameController : MonoBehaviour
GameObject spawnedObjectParent = new GameObject("SpawnedModelParent");
spawnedObjectParent.transform.parent = modelSpawnPoint;
spawnedObjectParent.transform.position = modelSpawnPoint.transform.position;
spawnedObjectParent.layer = ignorePlayerCollisionLayer;
Rigidbody rigidbody = spawnedObjectParent.AddComponent<Rigidbody>();
rigidbody.isKinematic = true;
@@ -81,6 +84,7 @@ public class ShapeDetectionMinigameController : MonoBehaviour
spawnedObject.transform.parent = spawnedObjectParent.transform;
spawnedObject.transform.position = spawnedObjectParent.transform.position;
spawnedObject.tag = shapeScannerTag;
spawnedObject.layer = ignorePlayerCollisionLayer;
spawnedObjectParent.AddComponent<TwoHandScaleGrabInteractable>();
}

View File

@@ -42,6 +42,8 @@ public class ShapeScanner : MonoBehaviour
private int rayCount;
private int correctRayStates;
private GameObject currentlyScannableObject;
// Start is called before the first frame update
void Start()
@@ -60,6 +62,22 @@ public class ShapeScanner : MonoBehaviour
}
private void OnTriggerEnter(Collider other)
{
if (other.tag == rayPrefab.scannableTag)
{
currentlyScannableObject = other.gameObject;
}
}
private void OnTriggerExit(Collider other)
{
if (other.tag == rayPrefab.scannableTag)
{
currentlyScannableObject = null;
}
}
private void InitializeConfiguration()
{
// Delete all existing rays first
@@ -67,6 +85,11 @@ public class ShapeScanner : MonoBehaviour
{
Destroy(ray);
}
if (currentlyScannableObject != null)
{
currentlyScannableObject.transform.position = Vector3.zero;
Destroy(currentlyScannableObject);
}
ShapeScannerConfiguration configuration = configurations[currentConfiguration];
int rayRowCount = configuration.rows.Count;
@@ -97,8 +120,6 @@ public class ShapeScanner : MonoBehaviour
rayCount = configuration.rows.SelectMany(row => row.cells).Count();
correctRayStates = configuration.rows.SelectMany(row => row.cells).Count(cell => !cell);
UpdateDisplay(calculateCorrectPercentage());
AudioManager.Instance.PlayAttachedInstance(FMODEvents.Instance.ShapeScannerSuccess, gameObject);
}
private float calculateCorrectPercentage()
@@ -117,9 +138,11 @@ public class ShapeScanner : MonoBehaviour
{
currentConfiguration++;
InitializeConfiguration();
AudioManager.Instance.PlayAttachedInstance(FMODEvents.Instance.ShapeScannerSuccess, gameObject);
} else
{
Debug.Log("Shape checker completed");
AudioManager.Instance.PlayAttachedInstance(FMODEvents.Instance.ShapeScannerSuccess, gameObject);
}
}
UpdateDisplay(correctPercentage);

5
config.json Normal file
View File

@@ -0,0 +1,5 @@
{
"InvokeAIUrl": "http://192.168.0.53:9090",
"InvokeAIModelKey": "81d45960-08a0-4b8c-a48b-e7d73b21bfe2",
"TrellisUrl": "http://192.168.0.53:7960"
}