diff --git a/Assets/Hangman/Scenes/Hangman.unity b/Assets/Hangman/Scenes/Hangman.unity
index 8966559..d195734 100644
--- a/Assets/Hangman/Scenes/Hangman.unity
+++ b/Assets/Hangman/Scenes/Hangman.unity
@@ -128,53 +128,6 @@ RectTransform:
m_CorrespondingSourceObject: {fileID: 8299246693487308515, guid: 3bccdf365a4fbea4d8fa1aa461d3dc5c, type: 3}
m_PrefabInstance: {fileID: 1290865991}
m_PrefabAsset: {fileID: 0}
---- !u!1 &18748060
-GameObject:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- serializedVersion: 6
- m_Component:
- - component: {fileID: 18748061}
- - component: {fileID: 18748062}
- m_Layer: 0
- m_Name: Webcam-controller
- m_TagString: Untagged
- m_Icon: {fileID: 0}
- m_NavMeshLayer: 0
- m_StaticEditorFlags: 0
- m_IsActive: 1
---- !u!4 &18748061
-Transform:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 18748060}
- m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
- m_LocalPosition: {x: 1189, y: -82, z: 0}
- m_LocalScale: {x: 1, y: 1, z: 1}
- m_ConstrainProportionsScale: 0
- m_Children: []
- m_Father: {fileID: 0}
- m_RootOrder: 4
- m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
---- !u!114 &18748062
-MonoBehaviour:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 18748060}
- m_Enabled: 1
- m_EditorHideFlags: 0
- m_Script: {fileID: 11500000, guid: a62d2b8bded916443835dc19010b83c1, type: 3}
- m_Name:
- m_EditorClassIdentifier:
- display: {fileID: 1649505745}
- display1: {fileID: 1554139454}
- display2: {fileID: 1649505745}
--- !u!1 &22296548
GameObject:
m_ObjectHideFlags: 0
@@ -1171,6 +1124,18 @@ MonoBehaviour:
m_StringArgument:
m_BoolArgument: 0
m_CallState: 2
+ - m_Target: {fileID: 1991376311}
+ m_TargetAssemblyTypeName: Mediapipe.Unity.Tutorial.SignPredictor, SignPredictor
+ m_MethodName: SwapScreen
+ m_Mode: 1
+ m_Arguments:
+ m_ObjectArgument: {fileID: 0}
+ m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine
+ m_IntArgument: 0
+ m_FloatArgument: 0
+ m_StringArgument:
+ m_BoolArgument: 0
+ m_CallState: 2
--- !u!114 &337000955
MonoBehaviour:
m_ObjectHideFlags: 0
@@ -2605,7 +2570,7 @@ Transform:
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 0}
- m_RootOrder: 3
+ m_RootOrder: 4
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1 &896343212
GameObject:
@@ -3570,7 +3535,6 @@ MonoBehaviour:
playerPanel: {fileID: 1892638587}
inputPanel: {fileID: 56162989}
inputTextField: {fileID: 1268894660}
- webcam: {fileID: 18748062}
endText: {fileID: 828446579}
gameEndedPanel: {fileID: 1943022819}
replayButton: {fileID: 1233450537}
@@ -3585,6 +3549,8 @@ MonoBehaviour:
Scoreboard: {fileID: 1007532375}
EntriesGrid: {fileID: 1391137944}
scoreboardEntry: {fileID: 9154151134820372555, guid: d4a3a228b08d61847acc6da35b44e52c, type: 3}
+ feedback: {fileID: 5233312447513285388}
+ gottogamebutton: {fileID: 1581633295}
--- !u!1001 &1290865991
PrefabInstance:
m_ObjectHideFlags: 0
@@ -3599,14 +3565,14 @@ PrefabInstance:
- target: {fileID: 8299246693487308512, guid: 3bccdf365a4fbea4d8fa1aa461d3dc5c, type: 3}
propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Target
value:
- objectReference: {fileID: 18748062}
+ objectReference: {fileID: 1591826840}
- target: {fileID: 8299246693487308512, guid: 3bccdf365a4fbea4d8fa1aa461d3dc5c, type: 3}
propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_MethodName
- value: GotoThemeSelection
+ value: Back
objectReference: {fileID: 0}
- target: {fileID: 8299246693487308512, guid: 3bccdf365a4fbea4d8fa1aa461d3dc5c, type: 3}
propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_TargetAssemblyTypeName
- value: HangManWebcam, Assembly-CSharp
+ value: BackButton, CommonScripts
objectReference: {fileID: 0}
- target: {fileID: 8299246693487308512, guid: 3bccdf365a4fbea4d8fa1aa461d3dc5c, type: 3}
propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Arguments.m_StringArgument
@@ -3702,6 +3668,17 @@ PrefabInstance:
objectReference: {fileID: 0}
m_RemovedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: 3bccdf365a4fbea4d8fa1aa461d3dc5c, type: 3}
+--- !u!114 &1290865992 stripped
+MonoBehaviour:
+ m_CorrespondingSourceObject: {fileID: 4518652150503380115, guid: 3bccdf365a4fbea4d8fa1aa461d3dc5c, type: 3}
+ m_PrefabInstance: {fileID: 1290865991}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 0}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: c3dd279b546423e4a8a1b28819a6c4a1, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
--- !u!1 &1361844164
GameObject:
m_ObjectHideFlags: 0
@@ -4049,14 +4026,14 @@ PrefabInstance:
- target: {fileID: 8299246693487308512, guid: 3bccdf365a4fbea4d8fa1aa461d3dc5c, type: 3}
propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Target
value:
- objectReference: {fileID: 18748062}
+ objectReference: {fileID: 1591826840}
- target: {fileID: 8299246693487308512, guid: 3bccdf365a4fbea4d8fa1aa461d3dc5c, type: 3}
propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_MethodName
- value: GotoThemeSelection
+ value: Back
objectReference: {fileID: 0}
- target: {fileID: 8299246693487308512, guid: 3bccdf365a4fbea4d8fa1aa461d3dc5c, type: 3}
propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_TargetAssemblyTypeName
- value: HangManWebcam, Assembly-CSharp
+ value: BackButton, CommonScripts
objectReference: {fileID: 0}
- target: {fileID: 8299246693487308512, guid: 3bccdf365a4fbea4d8fa1aa461d3dc5c, type: 3}
propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Arguments.m_StringArgument
@@ -4906,7 +4883,7 @@ GameObject:
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
- m_IsActive: 1
+ m_IsActive: 0
--- !u!224 &1581633296
RectTransform:
m_ObjectHideFlags: 0
@@ -4984,6 +4961,18 @@ MonoBehaviour:
m_StringArgument:
m_BoolArgument: 0
m_CallState: 2
+ - m_Target: {fileID: 1991376311}
+ m_TargetAssemblyTypeName: Mediapipe.Unity.Tutorial.SignPredictor, SignPredictor
+ m_MethodName: SwapScreen
+ m_Mode: 1
+ m_Arguments:
+ m_ObjectArgument: {fileID: 0}
+ m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine
+ m_IntArgument: 0
+ m_FloatArgument: 0
+ m_StringArgument:
+ m_BoolArgument: 0
+ m_CallState: 2
--- !u!114 &1581633298
MonoBehaviour:
m_ObjectHideFlags: 0
@@ -5036,14 +5025,14 @@ PrefabInstance:
- target: {fileID: 8299246693487308512, guid: 3bccdf365a4fbea4d8fa1aa461d3dc5c, type: 3}
propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Target
value:
- objectReference: {fileID: 18748062}
+ objectReference: {fileID: 1290865992}
- target: {fileID: 8299246693487308512, guid: 3bccdf365a4fbea4d8fa1aa461d3dc5c, type: 3}
propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_MethodName
- value: GotoThemeSelection
+ value: Back
objectReference: {fileID: 0}
- target: {fileID: 8299246693487308512, guid: 3bccdf365a4fbea4d8fa1aa461d3dc5c, type: 3}
propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_TargetAssemblyTypeName
- value: HangManWebcam, Assembly-CSharp
+ value: BackButton, CommonScripts
objectReference: {fileID: 0}
- target: {fileID: 8299246693487308512, guid: 3bccdf365a4fbea4d8fa1aa461d3dc5c, type: 3}
propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Arguments.m_StringArgument
@@ -5144,6 +5133,17 @@ RectTransform:
m_CorrespondingSourceObject: {fileID: 8299246693487308515, guid: 3bccdf365a4fbea4d8fa1aa461d3dc5c, type: 3}
m_PrefabInstance: {fileID: 1591826838}
m_PrefabAsset: {fileID: 0}
+--- !u!114 &1591826840 stripped
+MonoBehaviour:
+ m_CorrespondingSourceObject: {fileID: 4518652150503380115, guid: 3bccdf365a4fbea4d8fa1aa461d3dc5c, type: 3}
+ m_PrefabInstance: {fileID: 1591826838}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 0}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: c3dd279b546423e4a8a1b28819a6c4a1, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
--- !u!1 &1649505743
GameObject:
m_ObjectHideFlags: 0
@@ -6215,6 +6215,55 @@ CanvasRenderer:
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1943022819}
m_CullTransparentMesh: 1
+--- !u!1 &1991376310
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1991376312}
+ - component: {fileID: 1991376311}
+ m_Layer: 0
+ m_Name: SignPredictorController
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!114 &1991376311
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1991376310}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 043ccd99cf82b3cc9bf2e00956ce2b93, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ model: {fileID: 5022602860645237092, guid: 2594d8a9acfef6c4b88ce2618c4169cb, type: 3}
+ modelInfoFile: {fileID: 4900000, guid: fb8b51022bdcd654a9f29c054832a1b5, type: 3}
+ configAsset: {fileID: 4900000, guid: 6288c43cdca97374782dac1ea87aa029, type: 3}
+ screen: {fileID: 1649505745}
+ screen2: {fileID: 1554139454}
+--- !u!4 &1991376312
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1991376310}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
+ m_Children: []
+ m_Father: {fileID: 0}
+ m_RootOrder: 5
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1 &2001212056
GameObject:
m_ObjectHideFlags: 0
@@ -6426,3 +6475,472 @@ CanvasRenderer:
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2039368310}
m_CullTransparentMesh: 1
+--- !u!114 &5233312447201393291
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 5233312447201393293}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 67db9e8f0e2ae9c40bc1e2b64352a6b4, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_Navigation:
+ m_Mode: 3
+ m_WrapAround: 0
+ m_SelectOnUp: {fileID: 0}
+ m_SelectOnDown: {fileID: 0}
+ m_SelectOnLeft: {fileID: 0}
+ m_SelectOnRight: {fileID: 0}
+ m_Transition: 1
+ m_Colors:
+ m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
+ m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
+ m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1}
+ m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
+ m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608}
+ m_ColorMultiplier: 1
+ m_FadeDuration: 0.1
+ m_SpriteState:
+ m_HighlightedSprite: {fileID: 0}
+ m_PressedSprite: {fileID: 0}
+ m_SelectedSprite: {fileID: 0}
+ m_DisabledSprite: {fileID: 0}
+ m_AnimationTriggers:
+ m_NormalTrigger: Normal
+ m_HighlightedTrigger: Highlighted
+ m_PressedTrigger: Pressed
+ m_SelectedTrigger: Selected
+ m_DisabledTrigger: Disabled
+ m_Interactable: 1
+ m_TargetGraphic: {fileID: 0}
+ m_FillRect: {fileID: 5233312447919013132}
+ m_HandleRect: {fileID: 0}
+ m_Direction: 0
+ m_MinValue: 0
+ m_MaxValue: 1
+ m_WholeNumbers: 0
+ m_Value: 0
+ m_OnValueChanged:
+ m_PersistentCalls:
+ m_Calls: []
+--- !u!224 &5233312447201393292
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 5233312447201393293}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
+ m_Children:
+ - {fileID: 5233312448534255807}
+ - {fileID: 5233312448785575104}
+ m_Father: {fileID: 5233312447513285389}
+ m_RootOrder: 1
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+ m_AnchorMin: {x: 0, y: 0}
+ m_AnchorMax: {x: 1, y: 0}
+ m_AnchoredPosition: {x: 0, y: 0}
+ m_SizeDelta: {x: 0, y: 50}
+ m_Pivot: {x: 0.5, y: 0}
+--- !u!1 &5233312447201393293
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 5233312447201393292}
+ - component: {fileID: 5233312447201393291}
+ m_Layer: 5
+ m_Name: Progress
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!114 &5233312447513285388
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 5233312447513285390}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 44e682a32ee15cc489bf50f3a06f717b, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ feedbackText: {fileID: 0}
+ feedbackProgress: {fileID: 0}
+ feedbackProgressImage: {fileID: 0}
+ signPredictor: {fileID: 1991376311}
+--- !u!224 &5233312447513285389
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 5233312447513285390}
+ m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
+ m_Children:
+ - {fileID: 5233312448025626847}
+ - {fileID: 5233312447201393292}
+ m_Father: {fileID: 0}
+ m_RootOrder: 3
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+ m_AnchorMin: {x: 0.5, y: 0}
+ m_AnchorMax: {x: 0.5, y: 0}
+ m_AnchoredPosition: {x: 960, y: 200}
+ m_SizeDelta: {x: 500, y: 150}
+ m_Pivot: {x: 0.5, y: 0}
+--- !u!1 &5233312447513285390
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 5233312447513285389}
+ - component: {fileID: 5233312447513285388}
+ m_Layer: 5
+ m_Name: Feedback
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!224 &5233312447919013132
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 5233312447919013135}
+ m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
+ m_Children: []
+ m_Father: {fileID: 5233312448785575104}
+ m_RootOrder: 0
+ 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}
+ m_SizeDelta: {x: 10, y: 0}
+ m_Pivot: {x: 0.5, y: 0.5}
+--- !u!222 &5233312447919013133
+CanvasRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 5233312447919013135}
+ m_CullTransparentMesh: 1
+--- !u!114 &5233312447919013134
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 5233312447919013135}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_Material: {fileID: 0}
+ m_Color: {r: 1, g: 0, b: 0, a: 1}
+ m_RaycastTarget: 1
+ m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
+ m_Maskable: 1
+ m_OnCullStateChanged:
+ m_PersistentCalls:
+ m_Calls: []
+ m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0}
+ m_Type: 1
+ m_PreserveAspect: 0
+ m_FillCenter: 1
+ m_FillMethod: 4
+ m_FillAmount: 1
+ m_FillClockwise: 1
+ m_FillOrigin: 0
+ m_UseSpriteMesh: 0
+ m_PixelsPerUnitMultiplier: 1
+--- !u!1 &5233312447919013135
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 5233312447919013132}
+ - component: {fileID: 5233312447919013133}
+ - component: {fileID: 5233312447919013134}
+ m_Layer: 5
+ m_Name: Fill
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!222 &5233312448025626832
+CanvasRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 5233312448025626834}
+ m_CullTransparentMesh: 1
+--- !u!114 &5233312448025626833
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 5233312448025626834}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_Material: {fileID: 0}
+ m_Color: {r: 1, g: 1, b: 1, a: 1}
+ m_RaycastTarget: 1
+ m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
+ m_Maskable: 1
+ m_OnCullStateChanged:
+ m_PersistentCalls:
+ m_Calls: []
+ m_text: Detecteren ...
+ m_isRightToLeft: 0
+ m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2}
+ m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2}
+ m_fontSharedMaterials: []
+ m_fontMaterial: {fileID: 0}
+ m_fontMaterials: []
+ m_fontColor32:
+ serializedVersion: 2
+ rgba: 4282188031
+ m_fontColor: {r: 1, g: 0, b: 0.23945475, a: 1}
+ m_enableVertexGradient: 0
+ m_colorMode: 3
+ m_fontColorGradient:
+ topLeft: {r: 1, g: 1, b: 1, a: 1}
+ topRight: {r: 1, g: 1, b: 1, a: 1}
+ bottomLeft: {r: 1, g: 1, b: 1, a: 1}
+ bottomRight: {r: 1, g: 1, b: 1, a: 1}
+ m_fontColorGradientPreset: {fileID: 0}
+ m_spriteAsset: {fileID: 0}
+ m_tintAllSprites: 0
+ m_StyleSheet: {fileID: 0}
+ m_TextStyleHashCode: -1183493901
+ m_overrideHtmlColors: 0
+ m_faceColor:
+ serializedVersion: 2
+ rgba: 4294967295
+ m_fontSize: 48
+ m_fontSizeBase: 48
+ m_fontWeight: 400
+ m_enableAutoSizing: 0
+ m_fontSizeMin: 18
+ m_fontSizeMax: 72
+ m_fontStyle: 1
+ m_HorizontalAlignment: 2
+ m_VerticalAlignment: 512
+ m_textAlignment: 65535
+ m_characterSpacing: 0
+ m_wordSpacing: 0
+ m_lineSpacing: 0
+ m_lineSpacingMax: 0
+ m_paragraphSpacing: 0
+ m_charWidthMaxAdj: 0
+ m_enableWordWrapping: 1
+ m_wordWrappingRatios: 0.4
+ m_overflowMode: 0
+ m_linkedTextComponent: {fileID: 0}
+ parentLinkedComponent: {fileID: 0}
+ m_enableKerning: 1
+ m_enableExtraPadding: 0
+ checkPaddingRequired: 0
+ m_isRichText: 1
+ m_parseCtrlCharacters: 1
+ m_isOrthographic: 1
+ m_isCullingEnabled: 0
+ m_horizontalMapping: 0
+ m_verticalMapping: 0
+ m_uvLineOffset: 0
+ m_geometrySortingOrder: 0
+ m_IsTextObjectScaleStatic: 0
+ m_VertexBufferAutoSizeReduction: 0
+ m_useMaxVisibleDescender: 1
+ m_pageToDisplay: 1
+ m_margin: {x: 0, y: 0, z: 0, w: 0}
+ m_isUsingLegacyAnimationComponent: 0
+ m_isVolumetricText: 0
+ m_hasFontAssetChanged: 0
+ m_baseMaterial: {fileID: 0}
+ m_maskOffset: {x: 0, y: 0, z: 0, w: 0}
+--- !u!1 &5233312448025626834
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 5233312448025626847}
+ - component: {fileID: 5233312448025626832}
+ - component: {fileID: 5233312448025626833}
+ m_Layer: 5
+ m_Name: Text
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!224 &5233312448025626847
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 5233312448025626834}
+ m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
+ m_Children: []
+ m_Father: {fileID: 5233312447513285389}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+ m_AnchorMin: {x: 0.5, y: 1}
+ m_AnchorMax: {x: 0.5, y: 1}
+ m_AnchoredPosition: {x: 0, y: 0}
+ m_SizeDelta: {x: 500, y: 100}
+ m_Pivot: {x: 0.5, y: 1}
+--- !u!1 &5233312448534255792
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 5233312448534255807}
+ - component: {fileID: 5233312448534255805}
+ - component: {fileID: 5233312448534255806}
+ m_Layer: 5
+ m_Name: Background
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!222 &5233312448534255805
+CanvasRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 5233312448534255792}
+ m_CullTransparentMesh: 1
+--- !u!114 &5233312448534255806
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 5233312448534255792}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_Material: {fileID: 0}
+ m_Color: {r: 1, g: 1, b: 1, a: 1}
+ m_RaycastTarget: 1
+ m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
+ m_Maskable: 1
+ m_OnCullStateChanged:
+ m_PersistentCalls:
+ m_Calls: []
+ m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0}
+ m_Type: 1
+ m_PreserveAspect: 0
+ m_FillCenter: 1
+ m_FillMethod: 4
+ m_FillAmount: 1
+ m_FillClockwise: 1
+ m_FillOrigin: 0
+ m_UseSpriteMesh: 0
+ m_PixelsPerUnitMultiplier: 1
+--- !u!224 &5233312448534255807
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 5233312448534255792}
+ m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
+ m_Children: []
+ m_Father: {fileID: 5233312447201393292}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+ m_AnchorMin: {x: 0, y: 0}
+ m_AnchorMax: {x: 1, y: 1}
+ m_AnchoredPosition: {x: 0, y: 0}
+ m_SizeDelta: {x: 0, y: 0}
+ m_Pivot: {x: 0.5, y: 0.5}
+--- !u!224 &5233312448785575104
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 5233312448785575105}
+ m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
+ m_Children:
+ - {fileID: 5233312447919013132}
+ m_Father: {fileID: 5233312447201393292}
+ m_RootOrder: 1
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+ m_AnchorMin: {x: 0, y: 0}
+ m_AnchorMax: {x: 1, y: 1}
+ m_AnchoredPosition: {x: 0, y: 0}
+ m_SizeDelta: {x: 0, y: 0}
+ m_Pivot: {x: 0.5, y: 0.5}
+--- !u!1 &5233312448785575105
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 5233312448785575104}
+ m_Layer: 5
+ m_Name: Fill Area
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
diff --git a/Assets/Hangman/Scripts/HangmanGameController.cs b/Assets/Hangman/Scripts/HangmanGameController.cs
index a131a93..ecb8885 100644
--- a/Assets/Hangman/Scripts/HangmanGameController.cs
+++ b/Assets/Hangman/Scripts/HangmanGameController.cs
@@ -110,11 +110,6 @@ public class HangmanGameController : MonoBehaviour
///
private int mode;
- ///
- /// We give the controller access to the webcam so that it can toggle between the two displays effectivelly.
- ///
- public HangManWebcam webcam;
-
// The following attributes are necessary to finish and gameover
///
@@ -200,14 +195,27 @@ public class HangmanGameController : MonoBehaviour
///
public GameObject scoreboardEntry;
+ ///
+ /// Accuracy feeback object
+ ///
+ public Feedback feedback;
+
+ ///
+ /// The button to go into the game
+ ///
+ public GameObject gottogamebutton;
+
+ ///
+ /// Current sign out of the predictor
+ ///
+ private String currentsign = "";
+
// Start is called before the first frame update
void Start()
{
// Make sure the mode starts at zero
mode = 0;
- // Make sure that the webcam is turned off
- webcam.StopCam();
// Make sure that only the player-selection panel is the one shown
gamePanel.SetActive(false);
@@ -226,6 +234,16 @@ public class HangmanGameController : MonoBehaviour
user.minigames.Add(progress);
}
userList.Save();
+
+ // Set calllbacks
+ feedback.getSignCallback = () =>
+ {
+ return "A";
+ };
+ feedback.predictSignCallback = (sign) =>
+ {
+ currentsign = sign;
+ };
}
///
@@ -271,10 +289,6 @@ public class HangmanGameController : MonoBehaviour
currentWord = "";
inputTextField.text = currentWord.ToString();
- // Switch to the P1-display and Turn the webcam on
- webcam.Switch_texture();
- webcam.PlayCam();
-
// Activate the right panel
gamePanel.SetActive(false);
inputPanel.SetActive(true);
@@ -288,9 +302,6 @@ public class HangmanGameController : MonoBehaviour
// This word is used for testing before dynamic word-fetching is added
PickRandomWord();
- // Turn the webcam on
- webcam.PlayCam();
-
StartGame();
}
///
@@ -320,10 +331,7 @@ public class HangmanGameController : MonoBehaviour
public void TwoPlayer()
{
if (currentWord.Length >= 2)
- {
- // Switch display to the P2-display
- webcam.Switch_texture();
-
+ {
StartGame();
}
}
@@ -334,7 +342,14 @@ public class HangmanGameController : MonoBehaviour
public void Update()
{
if(mode == 1)
- {
+ {
+ if (currentsign != "")
+ {
+ char letter = currentsign.ToLower()[0];
+ currentsign = "";
+ currentWord = currentWord + letter.ToString();
+ inputTextField.text = currentWord.ToString();
+ }
// We are in the word-input mode
// We want to show the user what they are typing
// Check to make sure the inputfield is not empty
@@ -357,7 +372,7 @@ public class HangmanGameController : MonoBehaviour
inputTextField.text = currentWord.ToString();
}
}
-
+ gottogamebutton.SetActive(currentWord.Length >2);
}
if (mode == 2)
@@ -369,9 +384,10 @@ public class HangmanGameController : MonoBehaviour
// For the first input char given by the user, check if the letter is in the word that needs to be spelled.
// Check to make sure the inputfield is not empty
- if (Input.inputString != "")
+ if (currentsign != "")
{
- char firstLetter = Input.inputString.ToLower()[0];
+ char firstLetter = currentsign.ToLower()[0];
+ currentsign = "";
// Check if the letter is a valid guess and that it has not been guessed before
if (!guesses.Contains(firstLetter) && guessables.Contains(firstLetter))
{
diff --git a/Assets/MediaPipeUnity/Scripts/Feedback.cs b/Assets/MediaPipeUnity/Scripts/Feedback.cs
index e00e281..bbb88a0 100644
--- a/Assets/MediaPipeUnity/Scripts/Feedback.cs
+++ b/Assets/MediaPipeUnity/Scripts/Feedback.cs
@@ -80,57 +80,58 @@ public class Feedback : MonoBehaviour
// Get current sign
string currentSign = getSignCallback();
-
// Get the predicted sign
if (signPredictor != null && signPredictor.learnableProbabilities != null &&
currentSign != null && signPredictor.learnableProbabilities.ContainsKey(currentSign))
- {
+ {
float accuracy = signPredictor.learnableProbabilities[currentSign];
- if (accuracy > 0.98)
- {
- // TODO: fix emojis
- feedbackText.text = "✨ Perfect ✨";
- Color col = new Color(0xff / 255.0f, 0xcc / 255.0f, 0x00 / 255.0f);
- feedbackText.color = col;
- feedbackProgressImage.color = col;
- }
- else if (accuracy > 0.95)
- {
- feedbackText.text = "Super!";
- Color col = new Color(0x00 / 255.0f, 0xff / 255.0f, 0xcc / 255.0f);
- feedbackText.color = col;
- feedbackProgressImage.color = col;
- }
- else if (accuracy > 0.90)
- {
- feedbackText.text = "Goed";
- feedbackText.color = Color.green;
- feedbackProgressImage.color = Color.green;
- }
- else if (accuracy > 0.80)
- {
- feedbackText.text = "Bijna...";
- Color col = new Color(0xff / 255.0f, 0x66 / 255.0f, 0x00 / 255.0f);
- feedbackText.color = col;
- feedbackProgressImage.color = col;
- }
- else
- {
- feedbackText.text = "Detecteren...";
- feedbackText.color = Color.red;
- feedbackProgressImage.color = Color.red;
- }
-
- float oldValue = feedbackProgress.value;
- // use an exponential scale
- float newValue = Mathf.Exp(4 * (accuracy - 1.0f));
- feedbackProgress.gameObject.Tween("FeedbackUpdate", oldValue, newValue, 0.2f, TweenScaleFunctions.CubicEaseInOut, (t) =>
- {
- if (feedbackProgress != null)
+ if (feedbackText != null && feedbackProgressImage != null){
+ if (accuracy > 0.98)
{
- feedbackProgress.value = t.CurrentValue;
+ // TODO: fix emojis
+ feedbackText.text = "✨ Perfect ✨";
+ Color col = new Color(0xff / 255.0f, 0xcc / 255.0f, 0x00 / 255.0f);
+ feedbackText.color = col;
+ feedbackProgressImage.color = col;
}
- });
+ else if (accuracy > 0.95)
+ {
+ feedbackText.text = "Super!";
+ Color col = new Color(0x00 / 255.0f, 0xff / 255.0f, 0xcc / 255.0f);
+ feedbackText.color = col;
+ feedbackProgressImage.color = col;
+ }
+ else if (accuracy > 0.90)
+ {
+ feedbackText.text = "Goed";
+ feedbackText.color = Color.green;
+ feedbackProgressImage.color = Color.green;
+ }
+ else if (accuracy > 0.80)
+ {
+ feedbackText.text = "Bijna...";
+ Color col = new Color(0xff / 255.0f, 0x66 / 255.0f, 0x00 / 255.0f);
+ feedbackText.color = col;
+ feedbackProgressImage.color = col;
+ }
+ else
+ {
+ feedbackText.text = "Detecteren...";
+ feedbackText.color = Color.red;
+ feedbackProgressImage.color = Color.red;
+ }
+
+ float oldValue = feedbackProgress.value;
+ // use an exponential scale
+ float newValue = Mathf.Exp(4 * (accuracy - 1.0f));
+ feedbackProgress.gameObject.Tween("FeedbackUpdate", oldValue, newValue, 0.2f, TweenScaleFunctions.CubicEaseInOut, (t) =>
+ {
+ if (feedbackProgress != null)
+ {
+ feedbackProgress.value = t.CurrentValue;
+ }
+ });
+ }
// Check whether (in)correct sign has high accuracy
foreach (var kv in signPredictor.learnableProbabilities)
@@ -167,8 +168,9 @@ public class Feedback : MonoBehaviour
}
}
}
- else
+ else if(feedbackProgress != null)
{
+
feedbackProgress.value = 0.0f;
}
}
diff --git a/Assets/MediaPipeUnity/Scripts/SignPredictor.cs b/Assets/MediaPipeUnity/Scripts/SignPredictor.cs
index 072174e..b1d8338 100644
--- a/Assets/MediaPipeUnity/Scripts/SignPredictor.cs
+++ b/Assets/MediaPipeUnity/Scripts/SignPredictor.cs
@@ -45,6 +45,12 @@ namespace Mediapipe.Unity.Tutorial
[SerializeField]
private RawImage screen;
+ ///
+ /// A secondary optional screen object on which the video is displayed
+ ///
+ [SerializeField]
+ private RawImage screen2;
+
///
/// MediaPipe graph
///
@@ -161,6 +167,10 @@ namespace Mediapipe.Unity.Tutorial
float webcamAspect = (float)webcamTexture.width / (float)webcamTexture.height;
screen.rectTransform.sizeDelta = new Vector2(screen.rectTransform.sizeDelta.y * webcamAspect, (screen.rectTransform.sizeDelta.y));
screen.texture = webcamTexture;
+ if(screen2 != null)
+ {
+ screen2.rectTransform.sizeDelta = new Vector2(screen2.rectTransform.sizeDelta.y * webcamAspect, (screen2.rectTransform.sizeDelta.y));
+ }
// TODO this method is kinda meh you should use
inputTexture = new Texture2D(width, height, TextureFormat.RGBA32, false);
@@ -368,5 +378,21 @@ namespace Mediapipe.Unity.Tutorial
webcamTexture.Play();
}
}
+ ///
+ /// Swaps the display screens
+ ///
+ public void SwapScreen()
+ {
+ if(screen2.texture == null && screen.texture != null)
+ {
+ screen2.texture = webcamTexture;
+ screen.texture = null;
+ }
+ else if (screen2.texture != null && screen.texture == null)
+ {
+ screen.texture = webcamTexture;
+ screen2.texture = null;
+ }
+ }
}
}
diff --git a/ProjectSettings/BurstAotSettings_WebGL.json b/ProjectSettings/BurstAotSettings_WebGL.json
new file mode 100644
index 0000000..771d37b
--- /dev/null
+++ b/ProjectSettings/BurstAotSettings_WebGL.json
@@ -0,0 +1,14 @@
+{
+ "MonoBehaviour": {
+ "Version": 4,
+ "EnableBurstCompilation": true,
+ "EnableOptimisations": true,
+ "EnableSafetyChecks": false,
+ "EnableDebugInAllBuilds": false,
+ "CpuMinTargetX32": 0,
+ "CpuMaxTargetX32": 0,
+ "CpuMinTargetX64": 0,
+ "CpuMaxTargetX64": 0,
+ "OptimizeFor": 0
+ }
+}
diff --git a/ProjectSettings/EditorBuildSettings.asset b/ProjectSettings/EditorBuildSettings.asset
index be98625..bf86ff2 100644
--- a/ProjectSettings/EditorBuildSettings.asset
+++ b/ProjectSettings/EditorBuildSettings.asset
@@ -38,6 +38,9 @@ EditorBuildSettings:
- enabled: 1
path: Assets/Common/Scenes/MinigameActivityScreen.unity
guid: 8e27404f21454dc4583f76b4c7df0c30
+ - enabled: 1
+ path: Assets/JustSign/Scenes/Game.unity
+ guid: 1283017ac1c1f6226854442564bd7e3d
- enabled: 1
path: Assets/Common/Scenes/ThemeSelectionScreen.unity
guid: 2dfa1265c9d65014c90941ac4240a977
diff --git a/ProjectSettings/TimelineSettings.asset b/ProjectSettings/TimelineSettings.asset
new file mode 100644
index 0000000..cfaebd7
--- /dev/null
+++ b/ProjectSettings/TimelineSettings.asset
@@ -0,0 +1,16 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!114 &1
+MonoBehaviour:
+ m_ObjectHideFlags: 61
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 0}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: a287be6c49135cd4f9b2b8666c39d999, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ assetDefaultFramerate: 60
+ m_DefaultFrameRate: 60