From 1f5b855f61a2f23c28da91b59d3f6f04ee75e535 Mon Sep 17 00:00:00 2001 From: Jelle De Geest Date: Sun, 14 May 2023 19:41:37 +0000 Subject: [PATCH] Wes xx gpu test --- .../Accounts/Tests/EditMode/UserListTests.cs | 6 +- .../Scripts/PersistentDataController.cs | 55 ++ .../EditMode/PersistentDataControllerTests.cs | 42 +- Assets/Common/Images/Menus/check.png | Bin 0 -> 7862 bytes Assets/Common/Images/Menus/check.png.meta | 123 +++ Assets/Common/Scenes/SettingsScreen.unity | 848 ++++++++++++++++++ Assets/Common/Scripts/SettingsScreen.cs | 34 + .../Scripts/SignPredictor.asmdef | 3 +- .../MediaPipeUnity/Scripts/SignPredictor.cs | 19 +- .../Settings.json | 2 +- 10 files changed, 1118 insertions(+), 14 deletions(-) create mode 100644 Assets/Common/Images/Menus/check.png create mode 100644 Assets/Common/Images/Menus/check.png.meta diff --git a/Assets/Accounts/Tests/EditMode/UserListTests.cs b/Assets/Accounts/Tests/EditMode/UserListTests.cs index 5e90ab0..d479f10 100644 --- a/Assets/Accounts/Tests/EditMode/UserListTests.cs +++ b/Assets/Accounts/Tests/EditMode/UserListTests.cs @@ -403,7 +403,7 @@ public class UserListTests FileAssert.Exists(PATH); string content = File.ReadAllText(PATH); - string expected = $"{{\"version\":{PersistentDataController.VERSION},\"users\":[{{\"entries\":[],\"username\":\"u5erNam3_0\",\"avatarIndex\":0,\"playtime\":0.0,\"minigames\":[],\"courses\":[]}},{{\"entries\":[],\"username\":\"u5erNam3_1\",\"avatarIndex\":0,\"playtime\":0.0,\"minigames\":[],\"courses\":[]}},{{\"entries\":[],\"username\":\"u5erNam3_2\",\"avatarIndex\":0,\"playtime\":0.0,\"minigames\":[],\"courses\":[]}},{{\"entries\":[],\"username\":\"u5erNam3_3\",\"avatarIndex\":0,\"playtime\":0.0,\"minigames\":[],\"courses\":[]}},{{\"entries\":[],\"username\":\"u5erNam3_4\",\"avatarIndex\":0,\"playtime\":0.0,\"minigames\":[],\"courses\":[]}}],\"currentUser\":3,\"currentMinigame\":0,\"currentCourse\":0,\"currentTheme\":0}}"; + string expected = $"{{\"version\":{PersistentDataController.VERSION},\"users\":[{{\"entries\":[],\"username\":\"u5erNam3_0\",\"avatarIndex\":0,\"playtime\":0.0,\"minigames\":[],\"courses\":[]}},{{\"entries\":[],\"username\":\"u5erNam3_1\",\"avatarIndex\":0,\"playtime\":0.0,\"minigames\":[],\"courses\":[]}},{{\"entries\":[],\"username\":\"u5erNam3_2\",\"avatarIndex\":0,\"playtime\":0.0,\"minigames\":[],\"courses\":[]}},{{\"entries\":[],\"username\":\"u5erNam3_3\",\"avatarIndex\":0,\"playtime\":0.0,\"minigames\":[],\"courses\":[]}},{{\"entries\":[],\"username\":\"u5erNam3_4\",\"avatarIndex\":0,\"playtime\":0.0,\"minigames\":[],\"courses\":[]}}],\"currentUser\":3,\"currentMinigame\":0,\"currentCourse\":0,\"currentTheme\":0,\"useGPU\":false}}"; Assert.AreEqual(expected, content); } @@ -428,7 +428,7 @@ public class UserListTests FileAssert.Exists(PATH); string content = File.ReadAllText(PATH); - string expected = $"{{\"version\":{PersistentDataController.VERSION},\"users\":[{{\"entries\":[],\"username\":\"u5erNam3_0\",\"avatarIndex\":0,\"playtime\":0.0,\"minigames\":[],\"courses\":[]}},{{\"entries\":[],\"username\":\"u5erNam3_1\",\"avatarIndex\":0,\"playtime\":0.0,\"minigames\":[],\"courses\":[]}},{{\"entries\":[],\"username\":\"u5erNam3_2\",\"avatarIndex\":0,\"playtime\":0.0,\"minigames\":[],\"courses\":[]}},{{\"entries\":[],\"username\":\"u5erNam3_3\",\"avatarIndex\":0,\"playtime\":0.0,\"minigames\":[],\"courses\":[]}},{{\"entries\":[],\"username\":\"u5erNam3_4\",\"avatarIndex\":0,\"playtime\":0.0,\"minigames\":[],\"courses\":[]}}],\"currentUser\":3,\"currentMinigame\":0,\"currentCourse\":0,\"currentTheme\":0}}"; + string expected = $"{{\"version\":{PersistentDataController.VERSION},\"users\":[{{\"entries\":[],\"username\":\"u5erNam3_0\",\"avatarIndex\":0,\"playtime\":0.0,\"minigames\":[],\"courses\":[]}},{{\"entries\":[],\"username\":\"u5erNam3_1\",\"avatarIndex\":0,\"playtime\":0.0,\"minigames\":[],\"courses\":[]}},{{\"entries\":[],\"username\":\"u5erNam3_2\",\"avatarIndex\":0,\"playtime\":0.0,\"minigames\":[],\"courses\":[]}},{{\"entries\":[],\"username\":\"u5erNam3_3\",\"avatarIndex\":0,\"playtime\":0.0,\"minigames\":[],\"courses\":[]}},{{\"entries\":[],\"username\":\"u5erNam3_4\",\"avatarIndex\":0,\"playtime\":0.0,\"minigames\":[],\"courses\":[]}}],\"currentUser\":3,\"currentMinigame\":0,\"currentCourse\":0,\"currentTheme\":0,\"useGPU\":false}}"; Assert.AreEqual(expected, content); } @@ -442,7 +442,7 @@ public class UserListTests FileAssert.Exists(PATH); string content = File.ReadAllText(PATH); - string expected = $"{{\"version\":{PersistentDataController.VERSION},\"users\":[],\"currentUser\":-1,\"currentMinigame\":0,\"currentCourse\":0,\"currentTheme\":0}}"; + string expected = $"{{\"version\":{PersistentDataController.VERSION},\"users\":[],\"currentUser\":-1,\"currentMinigame\":0,\"currentCourse\":0,\"currentTheme\":0,\"useGPU\":false}}"; Assert.AreEqual(expected, content); } } diff --git a/Assets/Architecture/Scripts/PersistentDataController.cs b/Assets/Architecture/Scripts/PersistentDataController.cs index 89d19b3..665694c 100644 --- a/Assets/Architecture/Scripts/PersistentDataController.cs +++ b/Assets/Architecture/Scripts/PersistentDataController.cs @@ -326,6 +326,27 @@ public class PersistentDataController public MinigameIndex currentMinigame; public CourseIndex currentCourse; public ThemeIndex currentTheme; + + /// + /// The use hardware acceleration user preferences + /// + public bool useGPU = false; + + /// + /// Initiate the SavedDataStructure, by setting the user preferences + /// + public SavedDataStructure() + { + RestoreSettings(); + } + + /// + /// Reset the user preferences to the default values + /// + public void RestoreSettings() + { + useGPU = false; + } } /// @@ -364,6 +385,7 @@ public class PersistentDataController { json.users.Clear(); json.currentUser = -1; + json.useGPU = false; } /// @@ -539,4 +561,37 @@ public class PersistentDataController if (save) Save(); } + + /// + /// Whether the user wants to use hardware acceleration or not + /// + public bool IsUsingGPU() + { + return json.useGPU; + } + + /// + /// Set the preference of the user for hardware acceleration + /// + /// Value of the preference + /// Whether to save the change immediately to disk + public void SetGPUUsage(bool value, bool save = true) + { + json.useGPU = value; + + if (save) + Save(); + } + + /// + /// Restore preferences to default factory settings + /// + /// Whether to save the change immediately to disk + public void RestoreSettings(bool save = true) + { + json.RestoreSettings(); + + if (save) + Save(); + } } diff --git a/Assets/Architecture/Tests/EditMode/PersistentDataControllerTests.cs b/Assets/Architecture/Tests/EditMode/PersistentDataControllerTests.cs index 308e803..a367389 100644 --- a/Assets/Architecture/Tests/EditMode/PersistentDataControllerTests.cs +++ b/Assets/Architecture/Tests/EditMode/PersistentDataControllerTests.cs @@ -83,7 +83,7 @@ public class PersistentDataControllerTests FileAssert.Exists(PATH); string content = File.ReadAllText(PATH); - string expected = "{\"version\":1027,\"users\":[],\"currentUser\":-1,\"currentMinigame\":0,\"currentCourse\":0,\"currentTheme\":0}"; + string expected = "{\"version\":1027,\"users\":[],\"currentUser\":-1,\"currentMinigame\":0,\"currentCourse\":0,\"currentTheme\":0,\"useGPU\":false}"; Assert.AreEqual(expected, content); } @@ -99,14 +99,14 @@ public class PersistentDataControllerTests FileAssert.Exists(PATH); string content = File.ReadAllText(PATH); - string expected = "{\"version\":1027,\"users\":[],\"currentUser\":-1,\"currentMinigame\":0,\"currentCourse\":0,\"currentTheme\":0}"; + string expected = "{\"version\":1027,\"users\":[],\"currentUser\":-1,\"currentMinigame\":0,\"currentCourse\":0,\"currentTheme\":0,\"useGPU\":false}"; Assert.AreEqual(expected, content); } [Test] public void Test_PersistentDataController_Load_Existing() { - string content = "{\"version\":1027,\"users\":[],\"currentUser\":-1,\"currentMinigame\":0,\"currentCourse\":0,\"currentTheme\":0}"; + string content = "{\"version\":1027,\"users\":[],\"currentUser\":-1,\"currentMinigame\":0,\"currentCourse\":0,\"currentTheme\":0,\"useGPU\":false}"; File.WriteAllText(PATH, content); Assert.IsTrue(pdc.Load(false)); } @@ -114,7 +114,7 @@ public class PersistentDataControllerTests [Test] public void Test_PersistentDataController_Load_OlderVersion() { - string content = "{\"version\":1026,\"users\":[],\"currentUser\":-1,\"currentMinigame\":0,\"currentCourse\":0,\"currentTheme\":0}"; + string content = "{\"version\":1026,\"users\":[],\"currentUser\":-1,\"currentMinigame\":0,\"currentCourse\":0,\"currentTheme\":0,\"useGPU\":false}"; File.WriteAllText(PATH, content); Assert.IsFalse(pdc.Load(false)); } @@ -122,7 +122,7 @@ public class PersistentDataControllerTests [Test] public void Test_PersistentDataController_Load_NewerVersion() { - string content = "{\"version\":1028,\"users\":[],\"currentUser\":-1,\"currentMinigame\":0,\"currentCourse\":0,\"currentTheme\":0}"; + string content = "{\"version\":1028,\"users\":[],\"currentUser\":-1,\"currentMinigame\":0,\"currentCourse\":0,\"currentTheme\":0,\"useGPU\":false}"; File.WriteAllText(PATH, content); Assert.IsFalse(pdc.Load(false)); } @@ -150,7 +150,7 @@ public class PersistentDataControllerTests File.WriteAllText(PATH, "https://www.youtube.com/watch?v=dQw4w9WgXcQ"); Assert.IsFalse(pdc.Load(true)); string content = File.ReadAllText(PATH); - string expected = "{\"version\":1027,\"users\":[],\"currentUser\":-1,\"currentMinigame\":0,\"currentCourse\":0,\"currentTheme\":0}"; + string expected = "{\"version\":1027,\"users\":[],\"currentUser\":-1,\"currentMinigame\":0,\"currentCourse\":0,\"currentTheme\":0,\"useGPU\":false}"; Assert.AreEqual(expected, content); } @@ -174,7 +174,7 @@ public class PersistentDataControllerTests pdc.AddUser(d); string content = File.ReadAllText(PATH); - string expected = "{\"version\":1027,\"users\":[{\"entries\":[],\"username\":\"username\",\"avatarIndex\":0,\"playtime\":0.0,\"minigames\":[],\"courses\":[]}],\"currentUser\":0,\"currentMinigame\":0,\"currentCourse\":0,\"currentTheme\":0}"; + string expected = "{\"version\":1027,\"users\":[{\"entries\":[],\"username\":\"username\",\"avatarIndex\":0,\"playtime\":0.0,\"minigames\":[],\"courses\":[]}],\"currentUser\":0,\"currentMinigame\":0,\"currentCourse\":0,\"currentTheme\":0,\"useGPU\":false}"; Assert.AreEqual(expected, content); } @@ -392,6 +392,34 @@ public class PersistentDataControllerTests Assert.AreEqual(ThemeIndex.SIGN_ALPHABET, pdc.GetCurrentTheme()); } + /// + /// Test whether hardware acceleration preference is saved correctly + /// + [Test] + public void Test_PersistentDataController_UseGPU() + { + pdc.Load(); + pdc.Clear(); + Assert.IsFalse(pdc.IsUsingGPU()); + pdc.SetGPUUsage(true); + Assert.IsTrue(pdc.IsUsingGPU()); + pdc.SetGPUUsage(false); + Assert.IsFalse(pdc.IsUsingGPU()); + } + + /// + /// Test whether restoring user preference is done correctly + /// + [Test] + public void Test_PersistentDataController_RestoreSettings() + { + pdc.Load(); + pdc.Clear(); + pdc.SetGPUUsage(true); + pdc.RestoreSettings(); + Assert.IsFalse(pdc.IsUsingGPU()); + } + [Test] public void Test_New_PersistentDataContainer() { diff --git a/Assets/Common/Images/Menus/check.png b/Assets/Common/Images/Menus/check.png new file mode 100644 index 0000000000000000000000000000000000000000..d3d4f5a8b9e5d0baaa00c675309ea26d61e8755f GIT binary patch literal 7862 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 StA`(!kzi2-|Ktb4&;AS2y0+N> literal 0 HcmV?d00001 diff --git a/Assets/Common/Images/Menus/check.png.meta b/Assets/Common/Images/Menus/check.png.meta new file mode 100644 index 0000000..485b025 --- /dev/null +++ b/Assets/Common/Images/Menus/check.png.meta @@ -0,0 +1,123 @@ +fileFormatVersion: 2 +guid: 5e122ccfaa192164690d750f6a4c10c6 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 12 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMasterTextureLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 1 + wrapV: 1 + wrapW: 0 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + cookieLightType: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Server + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 5e97eb03825dee720800000000000000 + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + nameFileIdTable: {} + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Common/Scenes/SettingsScreen.unity b/Assets/Common/Scenes/SettingsScreen.unity index bf83a36..19f4aca 100644 --- a/Assets/Common/Scenes/SettingsScreen.unity +++ b/Assets/Common/Scenes/SettingsScreen.unity @@ -191,6 +191,82 @@ Transform: m_Father: {fileID: 0} m_RootOrder: 1 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &275693404 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 275693405} + - component: {fileID: 275693407} + - component: {fileID: 275693406} + m_Layer: 5 + m_Name: Button Image + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &275693405 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 275693404} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1.3, y: 1.3, z: 1.3} + m_ConstrainProportionsScale: 1 + m_Children: [] + m_Father: {fileID: 1068163986} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 1388, y: 497} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &275693406 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 275693404} + 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: 21300000, guid: 46578af6a9f38ea46bf4f53f79e8fca8, type: 3} + m_Type: 0 + 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!222 &275693407 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 275693404} + m_CullTransparentMesh: 1 --- !u!1 &519420028 GameObject: m_ObjectHideFlags: 0 @@ -372,6 +448,240 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 571869929} m_CullTransparentMesh: 1 +--- !u!1 &600588859 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 600588860} + - component: {fileID: 600588861} + m_Layer: 5 + m_Name: Use GPU + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &600588860 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 600588859} + 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: 1803985125} + - {fileID: 728530371} + m_Father: {fileID: 1548195092} + 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: 97} + m_SizeDelta: {x: 650, y: 50} + m_Pivot: {x: 0.5, y: 1} +--- !u!114 &600588861 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 600588859} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 9085046f02f69544eb97fd06b6048fe2, 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.88235295, g: 0.88235295, b: 0.88235295, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 1, g: 1, b: 1, 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: 1803985126} + toggleTransition: 1 + graphic: {fileID: 2071882562} + m_Group: {fileID: 0} + onValueChanged: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 1203775220} + m_TargetAssemblyTypeName: SettingsScreen, CommonScripts + m_MethodName: ToggleGPU + 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 + m_IsOn: 1 +--- !u!1 &728530370 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 728530371} + - component: {fileID: 728530373} + - component: {fileID: 728530372} + m_Layer: 5 + m_Name: Label + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &728530371 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 728530370} + 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: 600588860} + 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: 30, y: 0} + m_SizeDelta: {x: -60, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &728530372 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 728530370} + 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: Gebruik hardware vesnelling (GPU) + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 1baf2eae62f542f4585aaf3c9c3e229a, type: 2} + m_sharedMaterial: {fileID: -2577534979213189211, guid: 1baf2eae62f542f4585aaf3c9c3e229a, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4284235525 + m_fontColor: {r: 0.019607844, g: 0.24705882, b: 0.36078432, 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: 0 + m_HorizontalAlignment: 4 + 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!222 &728530373 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 728530370} + m_CullTransparentMesh: 1 --- !u!1001 &730783504 PrefabInstance: m_ObjectHideFlags: 0 @@ -533,6 +843,8 @@ RectTransform: - {fileID: 2035873552} - {fileID: 571869930} - {fileID: 1571811196} + - {fileID: 1548195092} + - {fileID: 1068163986} m_Father: {fileID: 1768150806} m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} @@ -579,6 +891,267 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 906197776} m_CullTransparentMesh: 1 +--- !u!1 &1068163985 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1068163986} + - component: {fileID: 1068163989} + - component: {fileID: 1068163988} + - component: {fileID: 1068163987} + m_Layer: 5 + m_Name: Reset Settings + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1068163986 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1068163985} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.29999998, y: 0.29999998, z: 0.29999998} + m_ConstrainProportionsScale: 1 + m_Children: + - {fileID: 275693405} + - {fileID: 1114056271} + - {fileID: 1818049857} + m_Father: {fileID: 906197777} + m_RootOrder: 5 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: -235} + m_SizeDelta: {x: 1524, y: 378} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!95 &1068163987 +Animator: + serializedVersion: 5 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1068163985} + m_Enabled: 1 + m_Avatar: {fileID: 0} + m_Controller: {fileID: 9100000, guid: 196bc314c0fd00a42aede7fc33ab93f5, type: 2} + m_CullingMode: 0 + m_UpdateMode: 0 + m_ApplyRootMotion: 0 + m_LinearVelocityBlending: 0 + m_StabilizeFeet: 0 + m_WarningMessage: + m_HasTransformHierarchy: 1 + m_AllowConstantClipSamplingOptimization: 1 + m_KeepAnimatorStateOnDisable: 0 +--- !u!114 &1068163988 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1068163985} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, 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: 2 + 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: 21300000, guid: a96945215efea6247ad7760d024d1eb6, type: 3} + m_PressedSprite: {fileID: 21300000, guid: a96945215efea6247ad7760d024d1eb6, type: 3} + m_SelectedSprite: {fileID: 21300000, guid: a96945215efea6247ad7760d024d1eb6, type: 3} + 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: 275693406} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 1203775220} + m_TargetAssemblyTypeName: SettingsScreen, CommonScripts + m_MethodName: RestoreSettings + 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!222 &1068163989 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1068163985} + m_CullTransparentMesh: 1 +--- !u!1 &1114056270 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1114056271} + - component: {fileID: 1114056273} + - component: {fileID: 1114056272} + m_Layer: 5 + m_Name: Button Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1114056271 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1114056270} + 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: 1068163986} + 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: 187, y: 0} + m_SizeDelta: {x: -374, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1114056272 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1114056270} + 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: Reset instellingen + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 1baf2eae62f542f4585aaf3c9c3e229a, type: 2} + m_sharedMaterial: {fileID: -2577534979213189211, guid: 1baf2eae62f542f4585aaf3c9c3e229a, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4294967295 + m_fontColor: {r: 1, g: 1, b: 1, 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: 150 + m_fontSizeBase: 150 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + 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!222 &1114056273 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1114056270} + m_CullTransparentMesh: 1 --- !u!1 &1203775218 GameObject: m_ObjectHideFlags: 0 @@ -624,6 +1197,44 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: directorEnterFromMainMenu: {fileID: 2007382037} + useGPUOption: {fileID: 600588861} +--- !u!1 &1548195091 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1548195092} + m_Layer: 5 + m_Name: Options + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1548195092 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1548195091} + 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: 600588860} + m_Father: {fileID: 906197777} + m_RootOrder: 4 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 100, y: 100} + m_Pivot: {x: 0.5, y: 0.5} --- !u!1 &1571811195 GameObject: m_ObjectHideFlags: 0 @@ -822,6 +1433,159 @@ RectTransform: m_AnchoredPosition: {x: 0, y: 0} m_SizeDelta: {x: 0, y: 0} m_Pivot: {x: 0, y: 0} +--- !u!1 &1803985124 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1803985125} + - component: {fileID: 1803985127} + - component: {fileID: 1803985126} + m_Layer: 5 + m_Name: Background + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1803985125 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1803985124} + 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: 2071882561} + m_Father: {fileID: 600588860} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 50, y: 0} + m_Pivot: {x: 0, y: 0.5} +--- !u!114 &1803985126 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1803985124} + 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: 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!222 &1803985127 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1803985124} + m_CullTransparentMesh: 1 +--- !u!1 &1818049856 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1818049857} + - component: {fileID: 1818049859} + - component: {fileID: 1818049858} + m_Layer: 5 + m_Name: Button Icon + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1818049857 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1818049856} + 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: 1068163986} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: -550, y: 0} + m_SizeDelta: {x: 280, y: 280} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1818049858 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1818049856} + 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: 21300000, guid: c503be644b0f16f43beb5cd454225ad1, type: 3} + m_Type: 0 + 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!222 &1818049859 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1818049856} + m_CullTransparentMesh: 1 --- !u!1 &2007382036 GameObject: m_ObjectHideFlags: 0 @@ -1016,6 +1780,14 @@ PrefabInstance: propertyPath: m_AnchoredPosition.y value: 0 objectReference: {fileID: 0} + - target: {fileID: 7907678336598372947, guid: 53b0d00ac817ebf43b61bea2d160dd66, type: 3} + propertyPath: m_sharedMaterial + value: + objectReference: {fileID: -2577534979213189211, guid: 1baf2eae62f542f4585aaf3c9c3e229a, type: 2} + - target: {fileID: 7907678336598372947, guid: 53b0d00ac817ebf43b61bea2d160dd66, type: 3} + propertyPath: m_hasFontAssetChanged + value: 0 + objectReference: {fileID: 0} m_RemovedComponents: [] m_SourcePrefab: {fileID: 100100000, guid: 53b0d00ac817ebf43b61bea2d160dd66, type: 3} --- !u!224 &2035873552 stripped @@ -1023,3 +1795,79 @@ RectTransform: m_CorrespondingSourceObject: {fileID: 2823887524698191630, guid: 53b0d00ac817ebf43b61bea2d160dd66, type: 3} m_PrefabInstance: {fileID: 2035873551} m_PrefabAsset: {fileID: 0} +--- !u!1 &2071882560 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2071882561} + - component: {fileID: 2071882563} + - component: {fileID: 2071882562} + m_Layer: 5 + m_Name: Checkmark + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2071882561 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2071882560} + 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: 1803985125} + 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: -7.5614, y: -7.5614} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &2071882562 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2071882560} + 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: 0.019607844, g: 0.24705882, b: 0.36078432, 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: 21300000, guid: 5e122ccfaa192164690d750f6a4c10c6, type: 3} + m_Type: 0 + m_PreserveAspect: 1 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &2071882563 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2071882560} + m_CullTransparentMesh: 1 diff --git a/Assets/Common/Scripts/SettingsScreen.cs b/Assets/Common/Scripts/SettingsScreen.cs index 07189b3..6041640 100644 --- a/Assets/Common/Scripts/SettingsScreen.cs +++ b/Assets/Common/Scripts/SettingsScreen.cs @@ -1,5 +1,6 @@ using UnityEngine; using UnityEngine.Playables; +using UnityEngine.UI; public class SettingsScreen : MonoBehaviour { @@ -8,11 +9,44 @@ public class SettingsScreen : MonoBehaviour /// public PlayableDirector directorEnterFromMainMenu; + /// + /// Reference to the 'hardware acceleration' toggle option + /// + public Toggle useGPUOption; + /// /// Start is called before the first frame update /// void Start() { + useGPUOption.onValueChanged.AddListener(ToggleGPU); + UpdateSettings(); directorEnterFromMainMenu.Play(); } + + /// + /// Update the display of the user preferences + /// + private void UpdateSettings() + { + var pdc = PersistentDataController.GetInstance(); + useGPUOption.isOn = pdc.IsUsingGPU(); + } + + /// + /// Toggle 'hardware acceleration' option + /// + private void ToggleGPU(bool state) + { + PersistentDataController.GetInstance().SetGPUUsage(state); + } + + /// + /// Restore the user preferences to their default values + /// + public void RestoreSettings() + { + PersistentDataController.GetInstance().RestoreSettings(); + UpdateSettings(); + } } diff --git a/Assets/MediaPipeUnity/Scripts/SignPredictor.asmdef b/Assets/MediaPipeUnity/Scripts/SignPredictor.asmdef index 37a4332..ca7b5b1 100644 --- a/Assets/MediaPipeUnity/Scripts/SignPredictor.asmdef +++ b/Assets/MediaPipeUnity/Scripts/SignPredictor.asmdef @@ -8,7 +8,8 @@ "GUID:58e104b97fb3752438ada2902a36dcbf", "GUID:7f2d0ee6dd21e1d4eb25b71b7a749d25", "GUID:f55a02e98b01bc849b30d9650ccd8f15", - "GUID:d23f64cfd3b314bb4a18a8284c99bf5e" + "GUID:d23f64cfd3b314bb4a18a8284c99bf5e", + "GUID:e83ddf9a537a96b4a804a16bb7872ec1" ], "includePlatforms": [], "excludePlatforms": [], diff --git a/Assets/MediaPipeUnity/Scripts/SignPredictor.cs b/Assets/MediaPipeUnity/Scripts/SignPredictor.cs index 2e3a187..fe29e18 100644 --- a/Assets/MediaPipeUnity/Scripts/SignPredictor.cs +++ b/Assets/MediaPipeUnity/Scripts/SignPredictor.cs @@ -364,11 +364,26 @@ public class SignPredictor : MonoBehaviour // Check if a model is ready to load yield return new WaitUntil(() => modelList.HasValidModel()); - // Create Model - Task t = Task.Run(() => MLEdgeModel.Create(modelList.GetCurrentModel())); + NatML.MLEdgeModel.Configuration myConfig = null; + + // Create Configuration + if (PersistentDataController.GetInstance().IsUsingGPU()) + { + // Create a new instance of the Configuration class + myConfig = new NatML.MLEdgeModel.Configuration(); + + // Set the computeTarget property to GPU + myConfig.computeTarget = NatML.MLEdgeModel.ComputeTarget.GPU; + } + + Task t = Task.Run(() => MLEdgeModel.Create(modelList.GetCurrentModel(), myConfig)); yield return new WaitUntil(() => t.IsCompleted); model = t.Result; + + + + predictor_embed = new NatMLSignPredictorEmbed(model); asyncPredictor = predictor_embed.ToAsync(); // Creating a KeypointManager diff --git a/ProjectSettings/Packages/com.unity.testtools.codecoverage/Settings.json b/ProjectSettings/Packages/com.unity.testtools.codecoverage/Settings.json index 9368c67..dea77e3 100644 --- a/ProjectSettings/Packages/com.unity.testtools.codecoverage/Settings.json +++ b/ProjectSettings/Packages/com.unity.testtools.codecoverage/Settings.json @@ -6,7 +6,7 @@ { "type": "System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089", "key": "IncludeAssemblies", - "value": "{\"m_Value\":\"AccountsScripts,CommonScripts,CourseScripts,HangmanScripts,InterfacesScripts,JustSignScripts,MinigameScripts,SignPredictor,SignPredictorInterfaces,SpellingBeeScripts\"}" + "value": "{\"m_Value\":\"AccountsScripts,ArchitectureScripts,CommonScripts,CourseScripts,HangmanScripts,InterfacesScripts,JustSignScripts,MinigameScripts,SignPredictor,SignPredictorInterfaces,SpellingBeeScripts\"}" }, { "type": "System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089",