From 1aebaeef761d08f998607c441213cc7a14a5e903 Mon Sep 17 00:00:00 2001 From: Jamie Greunbaum Date: Tue, 9 Dec 2025 20:41:10 -0500 Subject: [PATCH] After many rewrites and much debugging, video syncing finally works properly. --- Assets/Scenes/witwics.unity | 27 +- .../CaseVideoSyncPlayer.asset | 1262 ++++++++--------- .../CaseVideoSyncPlayer.cs | 215 ++- Assets/UdonSharp/Game Managers/CaseManager.cs | 10 +- .../Game Managers/GameManagerRound1.cs | 22 +- 5 files changed, 717 insertions(+), 819 deletions(-) diff --git a/Assets/Scenes/witwics.unity b/Assets/Scenes/witwics.unity index b64d015..c28d47d 100644 --- a/Assets/Scenes/witwics.unity +++ b/Assets/Scenes/witwics.unity @@ -83724,7 +83724,6 @@ MonoBehaviour: PrefabModifications: [] SerializationNodes: [] _udonSharpBackingUdonBehaviour: {fileID: 2057791819} - _GameManager: {fileID: 515404446} _VideoPlayer: {fileID: 2057791821} _BlankScreenMesh: {fileID: 1123331149} _VideoScreenMesh: {fileID: 1123331146} @@ -94312,12 +94311,16 @@ MonoBehaviour: - {fileID: 2100000, guid: 0c3dfdcd7a2a6ac408ec3d431f9a4932, type: 2} - {fileID: 2100000, guid: accd304c49b7d6d43b97738e8e118342, type: 2} - {fileID: 2100000, guid: 2c0cd617d97924748a9d5e2eeb2039b5, type: 2} + - {fileID: 2100000, guid: 672c36f6dbb36b5439cc0fdd2f74c531, type: 2} + - {fileID: 2100000, guid: 51b03d257a738e6468f623865f31dbec, type: 2} + - {fileID: 2100000, guid: 12e96dbe16f21704485645506bfc235a, type: 2} + - {fileID: 2100000, guid: 98b5c6e030fc83d48bbba9e927a456d4, type: 2} + - {fileID: 2100000, guid: 79cdc811085b366438fb60b12a3642ba, type: 2} + - {fileID: 2100000, guid: 4fb0b8cdca56f5d47be970c7490cb7a1, type: 2} - {fileID: 2100000, guid: af0c1cbaaffed304ba0e3a1fbac41e7e, type: 2} - {fileID: 2100000, guid: cc22c7f9de95cab4488b30fe8699a82a, type: 2} - {fileID: 2100000, guid: fe872fb72ad98da4dbb868481468e848, type: 2} - - {fileID: 2100000, guid: 4fb0b8cdca56f5d47be970c7490cb7a1, type: 2} - - {fileID: 2100000, guid: d1244b908a4cccd4397cc9cad45fe846, type: 2} - - {fileID: 2100000, guid: e53b90b5a4f1c3048b28024a40b455e7, type: 2} + - {fileID: 2100000, guid: d7188495ea0838346af40c820ec9ffc8, type: 2} - {fileID: 2100000, guid: 4de84333504452948874f4422dec7b56, type: 2} - {fileID: 2100000, guid: 97a375a2664a65f44a74b8e0711591fb, type: 2} - {fileID: 2100000, guid: 9cdc0250a4c9b534fae68ae6aa90bf31, type: 2} @@ -94326,42 +94329,38 @@ MonoBehaviour: - {fileID: 2100000, guid: ea08301eace4f164bb3aae930413a978, type: 2} - {fileID: 2100000, guid: 6dd6b8b1c8133f04dbc23ac81f5dfded, type: 2} - {fileID: 2100000, guid: c3186340e03d26341969d34663dbf8f3, type: 2} + - {fileID: 2100000, guid: bc5888e576e9cb34bab7b7af42d2b63f, type: 2} + - {fileID: 2100000, guid: 1eb2f964062497347b887d2c940e79c5, type: 2} - {fileID: 2100000, guid: 012e77fb6a6d69548802da3b41814618, type: 2} - {fileID: 2100000, guid: 4d875a76d6e247742b8d3d66214b2c2d, type: 2} - - {fileID: 2100000, guid: 12e96dbe16f21704485645506bfc235a, type: 2} - {fileID: 2100000, guid: 8db36ece14c543d47be04e1d0cde1a1f, type: 2} - {fileID: 2100000, guid: 77485a45419b5da498cc74acff31c49a, type: 2} - {fileID: 2100000, guid: d2b3854a83244764192826cd7eadc955, type: 2} - {fileID: 2100000, guid: 8de5e47a4e3831b40b59595ad3e2e267, type: 2} - {fileID: 2100000, guid: d23dd47c26278f94ea3bc15c730f59ed, type: 2} - {fileID: 2100000, guid: 77cb94791cc41a5498279122022730b0, type: 2} - - {fileID: 2100000, guid: 98b5c6e030fc83d48bbba9e927a456d4, type: 2} - {fileID: 2100000, guid: c0998459c7ac0e94d825035839d01ac9, type: 2} - {fileID: 2100000, guid: fa8f228d6d5f77d479bf970e355f4bc3, type: 2} - {fileID: 2100000, guid: 90a6fdf8f72a7a84d83dcb448e0f749e, type: 2} - {fileID: 2100000, guid: 6075d345a5007be4abb1a4485d1ebb5f, type: 2} - - {fileID: 2100000, guid: d7188495ea0838346af40c820ec9ffc8, type: 2} - - {fileID: 2100000, guid: 79cdc811085b366438fb60b12a3642ba, type: 2} - {fileID: 2100000, guid: ffd504a9168a01c459170bb8f2fcea1c, type: 2} - {fileID: 2100000, guid: 98166ed003d332e488319f662c3b4429, type: 2} - {fileID: 2100000, guid: c5d2a6b0c3904c747b937dd142cbb480, type: 2} + - {fileID: 2100000, guid: d1244b908a4cccd4397cc9cad45fe846, type: 2} - {fileID: 2100000, guid: 53b84df3db050264db8132d12d59ac74, type: 2} + - {fileID: 2100000, guid: e53b90b5a4f1c3048b28024a40b455e7, type: 2} - {fileID: 2100000, guid: 9d4baac78c2042b47b42fc9c92d87767, type: 2} - {fileID: 2100000, guid: db9b2b735115eb248a189b1fdc721a50, type: 2} - {fileID: 2100000, guid: cc8e36941dd3f2c42a157650e05b9242, type: 2} - - {fileID: 2100000, guid: 885429151ec5f6a4a926f6aaabd7e001, type: 2} - {fileID: 2100000, guid: 348ff3cc54305654d9eeebbbb385c262, type: 2} - {fileID: 2100000, guid: a94d8fe1854504e47a64e023cecaa130, type: 2} - - {fileID: 2100000, guid: 51b03d257a738e6468f623865f31dbec, type: 2} - {fileID: 2100000, guid: e45d02bbf7268504ca58513c548a58e7, type: 2} - - {fileID: 2100000, guid: 35c2a316ece610b4b963e047e5238337, type: 2} - - {fileID: 2100000, guid: 1eb2f964062497347b887d2c940e79c5, type: 2} - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0} - - {fileID: 2100000, guid: 672c36f6dbb36b5439cc0fdd2f74c531, type: 2} - - {fileID: 2100000, guid: bc5888e576e9cb34bab7b7af42d2b63f, type: 2} - {fileID: 2100000, guid: cac39def7281c5c488b6a3465ec1951b, type: 2} - {fileID: 2100000, guid: 80746b095abb6ce41a1c737df3649172, type: 2} + - {fileID: 2100000, guid: 885429151ec5f6a4a926f6aaabd7e001, type: 2} - {fileID: 2100000, guid: 332daba92d0976f4d86bdcdc1a94179e, type: 2} + - {fileID: 2100000, guid: 35c2a316ece610b4b963e047e5238337, type: 2} - {fileID: 2100000, guid: dba163de40c568b48ae2ffa7c83c66b9, type: 2} - {fileID: 2100000, guid: 483ceb65615010745bde1d5ff9fd9dd6, type: 2} - {fileID: 2100000, guid: c10453b4aa0c864458b74f3797cb611e, type: 2} diff --git a/Assets/UdonSharp/CaseVideoSyncPlayer/CaseVideoSyncPlayer.asset b/Assets/UdonSharp/CaseVideoSyncPlayer/CaseVideoSyncPlayer.asset index d6ba22c..39b03e6 100644 --- a/Assets/UdonSharp/CaseVideoSyncPlayer/CaseVideoSyncPlayer.asset +++ b/Assets/UdonSharp/CaseVideoSyncPlayer/CaseVideoSyncPlayer.asset @@ -50,31 +50,25 @@ MonoBehaviour: Data: - Name: $k Entry: 1 - Data: _GameManager + Data: _VideoPlayer - Name: $v Entry: 7 Data: 2|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor - Name: k__BackingField Entry: 1 - Data: _GameManager + Data: _VideoPlayer - Name: k__BackingField Entry: 7 Data: 3|System.RuntimeType, mscorlib - Name: Entry: 1 - Data: GameManagerRound1, Assembly-CSharp + Data: VRC.SDK3.Video.Components.Base.BaseVRCVideoPlayer, VRCSDK3 - Name: Entry: 8 Data: - Name: k__BackingField - Entry: 7 - Data: 4|System.RuntimeType, mscorlib - - Name: - Entry: 1 - Data: VRC.Udon.UdonBehaviour, VRC.Udon - - Name: - Entry: 8 - Data: + Entry: 9 + Data: 3 - Name: k__BackingField Entry: 7 Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib @@ -89,13 +83,13 @@ MonoBehaviour: Data: true - Name: _fieldAttributes Entry: 7 - Data: 5|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib + Data: 4|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib - Name: Entry: 12 Data: 1 - Name: Entry: 7 - Data: 6|UnityEngine.SerializeField, UnityEngine.CoreModule + Data: 5|UnityEngine.SerializeField, UnityEngine.CoreModule - Name: Entry: 8 Data: @@ -116,25 +110,25 @@ MonoBehaviour: Data: - Name: $k Entry: 1 - Data: _VideoPlayer + Data: _BlankScreenMesh - Name: $v Entry: 7 - Data: 7|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor + Data: 6|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor - Name: k__BackingField Entry: 1 - Data: _VideoPlayer + Data: _BlankScreenMesh - Name: k__BackingField Entry: 7 - Data: 8|System.RuntimeType, mscorlib + Data: 7|System.RuntimeType, mscorlib - Name: Entry: 1 - Data: VRC.SDK3.Video.Components.Base.BaseVRCVideoPlayer, VRCSDK3 + Data: UnityEngine.MeshRenderer, UnityEngine.CoreModule - Name: Entry: 8 Data: - Name: k__BackingField Entry: 9 - Data: 8 + Data: 7 - Name: k__BackingField Entry: 7 Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib @@ -149,10 +143,19 @@ MonoBehaviour: Data: true - Name: _fieldAttributes Entry: 7 - Data: 9|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib + Data: 8|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib - Name: Entry: 12 - Data: 1 + Data: 2 + - Name: + Entry: 7 + Data: 9|UnityEngine.HeaderAttribute, UnityEngine.CoreModule + - Name: header + Entry: 1 + Data: Meshes + - Name: + Entry: 8 + Data: - Name: Entry: 7 Data: 10|UnityEngine.SerializeField, UnityEngine.CoreModule @@ -176,25 +179,19 @@ MonoBehaviour: Data: - Name: $k Entry: 1 - Data: _BlankScreenMesh + Data: _VideoScreenMesh - Name: $v Entry: 7 Data: 11|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor - Name: k__BackingField Entry: 1 - Data: _BlankScreenMesh + Data: _VideoScreenMesh - Name: k__BackingField - Entry: 7 - Data: 12|System.RuntimeType, mscorlib - - Name: - Entry: 1 - Data: UnityEngine.MeshRenderer, UnityEngine.CoreModule - - Name: - Entry: 8 - Data: + Entry: 9 + Data: 7 - Name: k__BackingField Entry: 9 - Data: 12 + Data: 7 - Name: k__BackingField Entry: 7 Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib @@ -209,127 +206,133 @@ MonoBehaviour: Data: true - Name: _fieldAttributes Entry: 7 - Data: 13|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib + Data: 12|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib + - Name: + Entry: 12 + Data: 1 + - Name: + Entry: 7 + Data: 13|UnityEngine.SerializeField, UnityEngine.CoreModule + - Name: + Entry: 8 + Data: + - Name: + Entry: 13 + Data: + - Name: + Entry: 8 + Data: + - Name: + Entry: 8 + Data: + - Name: + Entry: 8 + Data: + - Name: + Entry: 7 + Data: + - Name: $k + Entry: 1 + Data: _MapScreenMesh + - Name: $v + Entry: 7 + Data: 14|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor + - Name: k__BackingField + Entry: 1 + Data: _MapScreenMesh + - Name: k__BackingField + Entry: 9 + Data: 7 + - Name: k__BackingField + Entry: 9 + Data: 7 + - Name: k__BackingField + Entry: 7 + Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib + - Name: + Entry: 6 + Data: + - Name: + Entry: 8 + Data: + - Name: k__BackingField + Entry: 5 + Data: true + - Name: _fieldAttributes + Entry: 7 + Data: 15|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib + - Name: + Entry: 12 + Data: 1 + - Name: + Entry: 7 + Data: 16|UnityEngine.SerializeField, UnityEngine.CoreModule + - Name: + Entry: 8 + Data: + - Name: + Entry: 13 + Data: + - Name: + Entry: 8 + Data: + - Name: + Entry: 8 + Data: + - Name: + Entry: 8 + Data: + - Name: + Entry: 7 + Data: + - Name: $k + Entry: 1 + Data: _MapScreenMaterial + - Name: $v + Entry: 7 + Data: 17|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor + - Name: k__BackingField + Entry: 1 + Data: _MapScreenMaterial + - Name: k__BackingField + Entry: 7 + Data: 18|System.RuntimeType, mscorlib + - Name: + Entry: 1 + Data: UnityEngine.Material, UnityEngine.CoreModule + - Name: + Entry: 8 + Data: + - Name: k__BackingField + Entry: 9 + Data: 18 + - Name: k__BackingField + Entry: 7 + Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib + - Name: + Entry: 6 + Data: + - Name: + Entry: 8 + Data: + - Name: k__BackingField + Entry: 5 + Data: true + - Name: _fieldAttributes + Entry: 7 + Data: 19|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib - Name: Entry: 12 Data: 2 - Name: Entry: 7 - Data: 14|UnityEngine.HeaderAttribute, UnityEngine.CoreModule + Data: 20|UnityEngine.HeaderAttribute, UnityEngine.CoreModule - Name: header Entry: 1 - Data: Meshes + Data: Materials - Name: Entry: 8 Data: - - Name: - Entry: 7 - Data: 15|UnityEngine.SerializeField, UnityEngine.CoreModule - - Name: - Entry: 8 - Data: - - Name: - Entry: 13 - Data: - - Name: - Entry: 8 - Data: - - Name: - Entry: 8 - Data: - - Name: - Entry: 8 - Data: - - Name: - Entry: 7 - Data: - - Name: $k - Entry: 1 - Data: _VideoScreenMesh - - Name: $v - Entry: 7 - Data: 16|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor - - Name: k__BackingField - Entry: 1 - Data: _VideoScreenMesh - - Name: k__BackingField - Entry: 9 - Data: 12 - - Name: k__BackingField - Entry: 9 - Data: 12 - - Name: k__BackingField - Entry: 7 - Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib - - Name: - Entry: 6 - Data: - - Name: - Entry: 8 - Data: - - Name: k__BackingField - Entry: 5 - Data: true - - Name: _fieldAttributes - Entry: 7 - Data: 17|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib - - Name: - Entry: 12 - Data: 1 - - Name: - Entry: 7 - Data: 18|UnityEngine.SerializeField, UnityEngine.CoreModule - - Name: - Entry: 8 - Data: - - Name: - Entry: 13 - Data: - - Name: - Entry: 8 - Data: - - Name: - Entry: 8 - Data: - - Name: - Entry: 8 - Data: - - Name: - Entry: 7 - Data: - - Name: $k - Entry: 1 - Data: _MapScreenMesh - - Name: $v - Entry: 7 - Data: 19|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor - - Name: k__BackingField - Entry: 1 - Data: _MapScreenMesh - - Name: k__BackingField - Entry: 9 - Data: 12 - - Name: k__BackingField - Entry: 9 - Data: 12 - - Name: k__BackingField - Entry: 7 - Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib - - Name: - Entry: 6 - Data: - - Name: - Entry: 8 - Data: - - Name: k__BackingField - Entry: 5 - Data: true - - Name: _fieldAttributes - Entry: 7 - Data: 20|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib - - Name: - Entry: 12 - Data: 1 - Name: Entry: 7 Data: 21|UnityEngine.SerializeField, UnityEngine.CoreModule @@ -353,19 +356,19 @@ MonoBehaviour: Data: - Name: $k Entry: 1 - Data: _MapScreenMaterial + Data: _PlaceholderMapTexture - Name: $v Entry: 7 Data: 22|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor - Name: k__BackingField Entry: 1 - Data: _MapScreenMaterial + Data: _PlaceholderMapTexture - Name: k__BackingField Entry: 7 Data: 23|System.RuntimeType, mscorlib - Name: Entry: 1 - Data: UnityEngine.Material, UnityEngine.CoreModule + Data: UnityEngine.Texture2D, UnityEngine.CoreModule - Name: Entry: 8 Data: @@ -387,81 +390,12 @@ MonoBehaviour: - Name: _fieldAttributes Entry: 7 Data: 24|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib - - Name: - Entry: 12 - Data: 2 - - Name: - Entry: 7 - Data: 25|UnityEngine.HeaderAttribute, UnityEngine.CoreModule - - Name: header - Entry: 1 - Data: Materials - - Name: - Entry: 8 - Data: - - Name: - Entry: 7 - Data: 26|UnityEngine.SerializeField, UnityEngine.CoreModule - - Name: - Entry: 8 - Data: - - Name: - Entry: 13 - Data: - - Name: - Entry: 8 - Data: - - Name: - Entry: 8 - Data: - - Name: - Entry: 8 - Data: - - Name: - Entry: 7 - Data: - - Name: $k - Entry: 1 - Data: _PlaceholderMapTexture - - Name: $v - Entry: 7 - Data: 27|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor - - Name: k__BackingField - Entry: 1 - Data: _PlaceholderMapTexture - - Name: k__BackingField - Entry: 7 - Data: 28|System.RuntimeType, mscorlib - - Name: - Entry: 1 - Data: UnityEngine.Texture2D, UnityEngine.CoreModule - - Name: - Entry: 8 - Data: - - Name: k__BackingField - Entry: 9 - Data: 28 - - Name: k__BackingField - Entry: 7 - Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib - - Name: - Entry: 6 - Data: - - Name: - Entry: 8 - Data: - - Name: k__BackingField - Entry: 5 - Data: true - - Name: _fieldAttributes - Entry: 7 - Data: 29|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib - Name: Entry: 12 Data: 1 - Name: Entry: 7 - Data: 30|UnityEngine.SerializeField, UnityEngine.CoreModule + Data: 25|UnityEngine.SerializeField, UnityEngine.CoreModule - Name: Entry: 8 Data: @@ -485,13 +419,13 @@ MonoBehaviour: Data: _VideoLoadIndicators - Name: $v Entry: 7 - Data: 31|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor + Data: 26|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor - Name: k__BackingField Entry: 1 Data: _VideoLoadIndicators - Name: k__BackingField Entry: 7 - Data: 32|System.RuntimeType, mscorlib + Data: 27|System.RuntimeType, mscorlib - Name: Entry: 1 Data: VideoLoadIndicator[], Assembly-CSharp @@ -500,7 +434,7 @@ MonoBehaviour: Data: - Name: k__BackingField Entry: 7 - Data: 33|System.RuntimeType, mscorlib + Data: 28|System.RuntimeType, mscorlib - Name: Entry: 1 Data: UnityEngine.Component[], UnityEngine.CoreModule @@ -521,13 +455,13 @@ MonoBehaviour: Data: true - Name: _fieldAttributes Entry: 7 - Data: 34|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib + Data: 29|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib - Name: Entry: 12 Data: 2 - Name: Entry: 7 - Data: 35|UnityEngine.HeaderAttribute, UnityEngine.CoreModule + Data: 30|UnityEngine.HeaderAttribute, UnityEngine.CoreModule - Name: header Entry: 1 Data: Video Status @@ -536,7 +470,7 @@ MonoBehaviour: Data: - Name: Entry: 7 - Data: 36|UnityEngine.SerializeField, UnityEngine.CoreModule + Data: 31|UnityEngine.SerializeField, UnityEngine.CoreModule - Name: Entry: 8 Data: @@ -560,13 +494,13 @@ MonoBehaviour: Data: _SubMapIndex - Name: $v Entry: 7 - Data: 37|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor + Data: 32|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor - Name: k__BackingField Entry: 1 Data: _SubMapIndex - Name: k__BackingField Entry: 7 - Data: 38|System.RuntimeType, mscorlib + Data: 33|System.RuntimeType, mscorlib - Name: Entry: 1 Data: System.Int32, mscorlib @@ -575,7 +509,73 @@ MonoBehaviour: Data: - Name: k__BackingField Entry: 9 - Data: 38 + Data: 33 + - Name: k__BackingField + Entry: 7 + Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib + - Name: + Entry: 3 + Data: 1 + - Name: + Entry: 8 + Data: + - Name: k__BackingField + Entry: 5 + Data: false + - Name: _fieldAttributes + Entry: 7 + Data: 34|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib + - Name: + Entry: 12 + Data: 2 + - Name: + Entry: 7 + Data: 35|UdonSharp.UdonSyncedAttribute, UdonSharp.Runtime + - Name: + Entry: 8 + Data: + - Name: + Entry: 7 + Data: 36|UdonSharp.FieldChangeCallbackAttribute, UdonSharp.Runtime + - Name: + Entry: 8 + Data: + - Name: + Entry: 13 + Data: + - Name: + Entry: 8 + Data: + - Name: + Entry: 8 + Data: + - Name: + Entry: 8 + Data: + - Name: + Entry: 7 + Data: + - Name: $k + Entry: 1 + Data: _ShowScreen + - Name: $v + Entry: 7 + Data: 37|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor + - Name: k__BackingField + Entry: 1 + Data: _ShowScreen + - Name: k__BackingField + Entry: 7 + Data: 38|System.RuntimeType, mscorlib + - Name: + Entry: 1 + Data: ClueScreenType, Assembly-CSharp + - Name: + Entry: 8 + Data: + - Name: k__BackingField + Entry: 9 + Data: 33 - Name: k__BackingField Entry: 7 Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib @@ -623,25 +623,25 @@ MonoBehaviour: Data: - Name: $k Entry: 1 - Data: _ShowScreen + Data: _FlashCorrectAnswer - Name: $v Entry: 7 Data: 42|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor - Name: k__BackingField Entry: 1 - Data: _ShowScreen + Data: _FlashCorrectAnswer - Name: k__BackingField Entry: 7 Data: 43|System.RuntimeType, mscorlib - Name: Entry: 1 - Data: ClueScreenType, Assembly-CSharp + Data: System.Boolean, mscorlib - Name: Entry: 8 Data: - Name: k__BackingField Entry: 9 - Data: 38 + Data: 43 - Name: k__BackingField Entry: 7 Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib @@ -689,25 +689,19 @@ MonoBehaviour: Data: - Name: $k Entry: 1 - Data: _FlashCorrectAnswer + Data: _VideoIndex - Name: $v Entry: 7 Data: 47|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor - Name: k__BackingField Entry: 1 - Data: _FlashCorrectAnswer + Data: _VideoIndex - Name: k__BackingField - Entry: 7 - Data: 48|System.RuntimeType, mscorlib - - Name: - Entry: 1 - Data: System.Boolean, mscorlib - - Name: - Entry: 8 - Data: + Entry: 9 + Data: 33 - Name: k__BackingField Entry: 9 - Data: 48 + Data: 33 - Name: k__BackingField Entry: 7 Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib @@ -722,19 +716,13 @@ MonoBehaviour: Data: false - Name: _fieldAttributes Entry: 7 - Data: 49|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib + Data: 48|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib - Name: Entry: 12 - Data: 2 + Data: 1 - Name: Entry: 7 - Data: 50|UdonSharp.UdonSyncedAttribute, UdonSharp.Runtime - - Name: - Entry: 8 - Data: - - Name: - Entry: 7 - Data: 51|UdonSharp.FieldChangeCallbackAttribute, UdonSharp.Runtime + Data: 49|UdonSharp.UdonSyncedAttribute, UdonSharp.Runtime - Name: Entry: 8 Data: @@ -755,19 +743,67 @@ MonoBehaviour: Data: - Name: $k Entry: 1 - Data: _VideoIndex + Data: _OldVideoIndex + - Name: $v + Entry: 7 + Data: 50|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor + - Name: k__BackingField + Entry: 1 + Data: _OldVideoIndex + - Name: k__BackingField + Entry: 9 + Data: 33 + - Name: k__BackingField + Entry: 9 + Data: 33 + - Name: k__BackingField + Entry: 7 + Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib + - Name: + Entry: 6 + Data: + - Name: + Entry: 8 + Data: + - Name: k__BackingField + Entry: 5 + Data: false + - Name: _fieldAttributes + Entry: 7 + Data: 51|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib + - Name: + Entry: 12 + Data: 0 + - Name: + Entry: 13 + Data: + - Name: + Entry: 8 + Data: + - Name: + Entry: 8 + Data: + - Name: + Entry: 8 + Data: + - Name: + Entry: 7 + Data: + - Name: $k + Entry: 1 + Data: _VideoIsPlaying - Name: $v Entry: 7 Data: 52|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor - Name: k__BackingField Entry: 1 - Data: _VideoIndex + Data: _VideoIsPlaying - Name: k__BackingField Entry: 9 - Data: 38 + Data: 43 - Name: k__BackingField Entry: 9 - Data: 38 + Data: 43 - Name: k__BackingField Entry: 7 Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib @@ -815,19 +851,19 @@ MonoBehaviour: Data: - Name: $k Entry: 1 - Data: _TimeAndOffset + Data: _CaseMapsList - Name: $v Entry: 7 Data: 56|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor - Name: k__BackingField Entry: 1 - Data: _TimeAndOffset + Data: _CaseMapsList - Name: k__BackingField Entry: 7 Data: 57|System.RuntimeType, mscorlib - Name: Entry: 1 - Data: UnityEngine.Vector2, UnityEngine.CoreModule + Data: VRC.SDKBase.VRCUrl[], VRCSDKBase - Name: Entry: 8 Data: @@ -851,19 +887,13 @@ MonoBehaviour: Data: 58|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib - Name: Entry: 12 - Data: 2 + Data: 1 - Name: Entry: 7 Data: 59|UdonSharp.UdonSyncedAttribute, UdonSharp.Runtime - Name: Entry: 8 Data: - - Name: - Entry: 7 - Data: 60|UdonSharp.FieldChangeCallbackAttribute, UdonSharp.Runtime - - Name: - Entry: 8 - Data: - Name: Entry: 13 Data: @@ -881,19 +911,73 @@ MonoBehaviour: Data: - Name: $k Entry: 1 - Data: _VideoIsPlaying + Data: _CaseMapsListCache - Name: $v Entry: 7 - Data: 61|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor + Data: 60|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor - Name: k__BackingField Entry: 1 - Data: _VideoIsPlaying + Data: _CaseMapsListCache - Name: k__BackingField Entry: 9 - Data: 48 + Data: 57 - Name: k__BackingField Entry: 9 - Data: 48 + Data: 57 + - Name: k__BackingField + Entry: 7 + Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib + - Name: + Entry: 6 + Data: + - Name: + Entry: 8 + Data: + - Name: k__BackingField + Entry: 5 + Data: false + - Name: _fieldAttributes + Entry: 7 + Data: 61|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib + - Name: + Entry: 12 + Data: 0 + - Name: + Entry: 13 + Data: + - Name: + Entry: 8 + Data: + - Name: + Entry: 8 + Data: + - Name: + Entry: 8 + Data: + - Name: + Entry: 7 + Data: + - Name: $k + Entry: 1 + Data: _CachedMapIndices + - Name: $v + Entry: 7 + Data: 62|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor + - Name: k__BackingField + Entry: 1 + Data: _CachedMapIndices + - Name: k__BackingField + Entry: 7 + Data: 63|System.RuntimeType, mscorlib + - Name: + Entry: 1 + Data: System.Int32[], mscorlib + - Name: + Entry: 8 + Data: + - Name: k__BackingField + Entry: 9 + Data: 63 - Name: k__BackingField Entry: 7 Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib @@ -908,19 +992,13 @@ MonoBehaviour: Data: false - Name: _fieldAttributes Entry: 7 - Data: 62|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib + Data: 64|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib - Name: Entry: 12 - Data: 2 + Data: 1 - Name: Entry: 7 - Data: 63|UdonSharp.UdonSyncedAttribute, UdonSharp.Runtime - - Name: - Entry: 8 - Data: - - Name: - Entry: 7 - Data: 64|UdonSharp.FieldChangeCallbackAttribute, UdonSharp.Runtime + Data: 65|UdonSharp.UdonSyncedAttribute, UdonSharp.Runtime - Name: Entry: 8 Data: @@ -941,31 +1019,25 @@ MonoBehaviour: Data: - Name: $k Entry: 1 - Data: _CaseMapsList + Data: _LoadedMaps - Name: $v Entry: 7 - Data: 65|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor + Data: 66|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor - Name: k__BackingField Entry: 1 - Data: _CaseMapsList + Data: _LoadedMaps - Name: k__BackingField - Entry: 7 - Data: 66|System.RuntimeType, mscorlib - - Name: - Entry: 1 - Data: VRC.SDKBase.VRCUrl[], VRCSDKBase - - Name: - Entry: 8 - Data: + Entry: 9 + Data: 63 - Name: k__BackingField Entry: 9 - Data: 66 + Data: 63 - Name: k__BackingField Entry: 7 Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib - Name: - Entry: 3 - Data: 1 + Entry: 6 + Data: - Name: Entry: 8 Data: @@ -975,60 +1047,6 @@ MonoBehaviour: - Name: _fieldAttributes Entry: 7 Data: 67|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib - - Name: - Entry: 12 - Data: 1 - - Name: - Entry: 7 - Data: 68|UdonSharp.UdonSyncedAttribute, UdonSharp.Runtime - - Name: - Entry: 8 - Data: - - Name: - Entry: 13 - Data: - - Name: - Entry: 8 - Data: - - Name: - Entry: 8 - Data: - - Name: - Entry: 8 - Data: - - Name: - Entry: 7 - Data: - - Name: $k - Entry: 1 - Data: _CaseMapsListCache - - Name: $v - Entry: 7 - Data: 69|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor - - Name: k__BackingField - Entry: 1 - Data: _CaseMapsListCache - - Name: k__BackingField - Entry: 9 - Data: 66 - - Name: k__BackingField - Entry: 9 - Data: 66 - - Name: k__BackingField - Entry: 7 - Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib - - Name: - Entry: 6 - Data: - - Name: - Entry: 8 - Data: - - Name: k__BackingField - Entry: 5 - Data: false - - Name: _fieldAttributes - Entry: 7 - Data: 70|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib - Name: Entry: 12 Data: 0 @@ -1049,79 +1067,73 @@ MonoBehaviour: Data: - Name: $k Entry: 1 - Data: _CachedMapIndices + Data: _CaseVideoList + - Name: $v + Entry: 7 + Data: 68|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor + - Name: k__BackingField + Entry: 1 + Data: _CaseVideoList + - Name: k__BackingField + Entry: 9 + Data: 57 + - Name: k__BackingField + Entry: 9 + Data: 57 + - Name: k__BackingField + Entry: 7 + Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib + - Name: + Entry: 3 + Data: 1 + - Name: + Entry: 8 + Data: + - Name: k__BackingField + Entry: 5 + Data: false + - Name: _fieldAttributes + Entry: 7 + Data: 69|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib + - Name: + Entry: 12 + Data: 1 + - Name: + Entry: 7 + Data: 70|UdonSharp.UdonSyncedAttribute, UdonSharp.Runtime + - Name: + Entry: 8 + Data: + - Name: + Entry: 13 + Data: + - Name: + Entry: 8 + Data: + - Name: + Entry: 8 + Data: + - Name: + Entry: 8 + Data: + - Name: + Entry: 7 + Data: + - Name: $k + Entry: 1 + Data: _CaseVideoListCache - Name: $v Entry: 7 Data: 71|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor - Name: k__BackingField Entry: 1 - Data: _CachedMapIndices - - Name: k__BackingField - Entry: 7 - Data: 72|System.RuntimeType, mscorlib - - Name: - Entry: 1 - Data: System.Int32[], mscorlib - - Name: - Entry: 8 - Data: - - Name: k__BackingField - Entry: 9 - Data: 72 - - Name: k__BackingField - Entry: 7 - Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib - - Name: - Entry: 3 - Data: 1 - - Name: - Entry: 8 - Data: - - Name: k__BackingField - Entry: 5 - Data: false - - Name: _fieldAttributes - Entry: 7 - Data: 73|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib - - Name: - Entry: 12 - Data: 1 - - Name: - Entry: 7 - Data: 74|UdonSharp.UdonSyncedAttribute, UdonSharp.Runtime - - Name: - Entry: 8 - Data: - - Name: - Entry: 13 - Data: - - Name: - Entry: 8 - Data: - - Name: - Entry: 8 - Data: - - Name: - Entry: 8 - Data: - - Name: - Entry: 7 - Data: - - Name: $k - Entry: 1 - Data: _LoadedMaps - - Name: $v - Entry: 7 - Data: 75|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor - - Name: k__BackingField - Entry: 1 - Data: _LoadedMaps + Data: _CaseVideoListCache - Name: k__BackingField Entry: 9 - Data: 72 + Data: 57 - Name: k__BackingField Entry: 9 - Data: 72 + Data: 57 - Name: k__BackingField Entry: 7 Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib @@ -1136,7 +1148,7 @@ MonoBehaviour: Data: false - Name: _fieldAttributes Entry: 7 - Data: 76|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib + Data: 72|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib - Name: Entry: 12 Data: 0 @@ -1157,25 +1169,85 @@ MonoBehaviour: Data: - Name: $k Entry: 1 - Data: _CaseVideoList + Data: _MapDownloader - Name: $v Entry: 7 - Data: 77|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor + Data: 73|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor - Name: k__BackingField Entry: 1 - Data: _CaseVideoList + Data: _MapDownloader - Name: k__BackingField - Entry: 9 - Data: 66 + Entry: 7 + Data: 74|System.RuntimeType, mscorlib + - Name: + Entry: 1 + Data: VRC.SDK3.Image.VRCImageDownloader, VRCSDK3 + - Name: + Entry: 8 + Data: - Name: k__BackingField Entry: 9 - Data: 66 + Data: 74 - Name: k__BackingField Entry: 7 Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib - Name: - Entry: 3 - Data: 1 + Entry: 6 + Data: + - Name: + Entry: 8 + Data: + - Name: k__BackingField + Entry: 5 + Data: false + - Name: _fieldAttributes + Entry: 7 + Data: 75|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib + - Name: + Entry: 12 + Data: 0 + - Name: + Entry: 13 + Data: + - Name: + Entry: 8 + Data: + - Name: + Entry: 8 + Data: + - Name: + Entry: 8 + Data: + - Name: + Entry: 7 + Data: + - Name: $k + Entry: 1 + Data: _MapImages + - Name: $v + Entry: 7 + Data: 76|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor + - Name: k__BackingField + Entry: 1 + Data: _MapImages + - Name: k__BackingField + Entry: 7 + Data: 77|System.RuntimeType, mscorlib + - Name: + Entry: 1 + Data: UnityEngine.Texture2D[], UnityEngine.CoreModule + - Name: + Entry: 8 + Data: + - Name: k__BackingField + Entry: 9 + Data: 77 + - Name: k__BackingField + Entry: 7 + Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib + - Name: + Entry: 6 + Data: - Name: Entry: 8 Data: @@ -1187,13 +1259,7 @@ MonoBehaviour: Data: 78|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib - Name: Entry: 12 - Data: 1 - - Name: - Entry: 7 - Data: 79|UdonSharp.UdonSyncedAttribute, UdonSharp.Runtime - - Name: - Entry: 8 - Data: + Data: 0 - Name: Entry: 13 Data: @@ -1211,19 +1277,25 @@ MonoBehaviour: Data: - Name: $k Entry: 1 - Data: _CaseVideoListCache + Data: _UdonEventReceiverThis - Name: $v Entry: 7 - Data: 80|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor + Data: 79|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor - Name: k__BackingField Entry: 1 - Data: _CaseVideoListCache + Data: _UdonEventReceiverThis - Name: k__BackingField - Entry: 9 - Data: 66 + Entry: 7 + Data: 80|System.RuntimeType, mscorlib + - Name: + Entry: 1 + Data: VRC.Udon.Common.Interfaces.IUdonEventReceiver, VRC.Udon.Common + - Name: + Entry: 8 + Data: - Name: k__BackingField Entry: 9 - Data: 66 + Data: 80 - Name: k__BackingField Entry: 7 Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib @@ -1259,25 +1331,19 @@ MonoBehaviour: Data: - Name: $k Entry: 1 - Data: _MapDownloader + Data: _MapDownloadIndex - Name: $v Entry: 7 Data: 82|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor - Name: k__BackingField Entry: 1 - Data: _MapDownloader + Data: _MapDownloadIndex - Name: k__BackingField - Entry: 7 - Data: 83|System.RuntimeType, mscorlib - - Name: - Entry: 1 - Data: VRC.SDK3.Image.VRCImageDownloader, VRCSDK3 - - Name: - Entry: 8 - Data: + Entry: 9 + Data: 33 - Name: k__BackingField Entry: 9 - Data: 83 + Data: 33 - Name: k__BackingField Entry: 7 Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib @@ -1292,7 +1358,7 @@ MonoBehaviour: Data: false - Name: _fieldAttributes Entry: 7 - Data: 84|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib + Data: 83|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib - Name: Entry: 12 Data: 0 @@ -1313,25 +1379,67 @@ MonoBehaviour: Data: - Name: $k Entry: 1 - Data: _MapImages + Data: _MapDownloadsInProgress - Name: $v Entry: 7 - Data: 85|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor + Data: 84|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor - Name: k__BackingField Entry: 1 - Data: _MapImages + Data: _MapDownloadsInProgress - Name: k__BackingField + Entry: 9 + Data: 43 + - Name: k__BackingField + Entry: 9 + Data: 43 + - Name: k__BackingField Entry: 7 - Data: 86|System.RuntimeType, mscorlib + Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib - Name: - Entry: 1 - Data: UnityEngine.Texture2D[], UnityEngine.CoreModule + Entry: 6 + Data: - Name: Entry: 8 Data: + - Name: k__BackingField + Entry: 5 + Data: false + - Name: _fieldAttributes + Entry: 7 + Data: 85|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib + - Name: + Entry: 12 + Data: 0 + - Name: + Entry: 13 + Data: + - Name: + Entry: 8 + Data: + - Name: + Entry: 8 + Data: + - Name: + Entry: 8 + Data: + - Name: + Entry: 7 + Data: + - Name: $k + Entry: 1 + Data: _VideoLoadAttemptCounter + - Name: $v + Entry: 7 + Data: 86|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor + - Name: k__BackingField + Entry: 1 + Data: _VideoLoadAttemptCounter + - Name: k__BackingField + Entry: 9 + Data: 33 - Name: k__BackingField Entry: 9 - Data: 86 + Data: 33 - Name: k__BackingField Entry: 7 Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib @@ -1367,217 +1475,19 @@ MonoBehaviour: Data: - Name: $k Entry: 1 - Data: _UdonEventReceiverThis + Data: _UseFallback - Name: $v Entry: 7 Data: 88|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor - - Name: k__BackingField - Entry: 1 - Data: _UdonEventReceiverThis - - Name: k__BackingField - Entry: 7 - Data: 89|System.RuntimeType, mscorlib - - Name: - Entry: 1 - Data: VRC.Udon.Common.Interfaces.IUdonEventReceiver, VRC.Udon.Common - - Name: - Entry: 8 - Data: - - Name: k__BackingField - Entry: 9 - Data: 89 - - Name: k__BackingField - Entry: 7 - Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib - - Name: - Entry: 6 - Data: - - Name: - Entry: 8 - Data: - - Name: k__BackingField - Entry: 5 - Data: false - - Name: _fieldAttributes - Entry: 7 - Data: 90|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib - - Name: - Entry: 12 - Data: 0 - - Name: - Entry: 13 - Data: - - Name: - Entry: 8 - Data: - - Name: - Entry: 8 - Data: - - Name: - Entry: 8 - Data: - - Name: - Entry: 7 - Data: - - Name: $k - Entry: 1 - Data: _MapDownloadIndex - - Name: $v - Entry: 7 - Data: 91|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor - - Name: k__BackingField - Entry: 1 - Data: _MapDownloadIndex - - Name: k__BackingField - Entry: 9 - Data: 38 - - Name: k__BackingField - Entry: 9 - Data: 38 - - Name: k__BackingField - Entry: 7 - Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib - - Name: - Entry: 6 - Data: - - Name: - Entry: 8 - Data: - - Name: k__BackingField - Entry: 5 - Data: false - - Name: _fieldAttributes - Entry: 7 - Data: 92|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib - - Name: - Entry: 12 - Data: 0 - - Name: - Entry: 13 - Data: - - Name: - Entry: 8 - Data: - - Name: - Entry: 8 - Data: - - Name: - Entry: 8 - Data: - - Name: - Entry: 7 - Data: - - Name: $k - Entry: 1 - Data: _MapDownloadsInProgress - - Name: $v - Entry: 7 - Data: 93|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor - - Name: k__BackingField - Entry: 1 - Data: _MapDownloadsInProgress - - Name: k__BackingField - Entry: 9 - Data: 48 - - Name: k__BackingField - Entry: 9 - Data: 48 - - Name: k__BackingField - Entry: 7 - Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib - - Name: - Entry: 6 - Data: - - Name: - Entry: 8 - Data: - - Name: k__BackingField - Entry: 5 - Data: false - - Name: _fieldAttributes - Entry: 7 - Data: 94|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib - - Name: - Entry: 12 - Data: 0 - - Name: - Entry: 13 - Data: - - Name: - Entry: 8 - Data: - - Name: - Entry: 8 - Data: - - Name: - Entry: 8 - Data: - - Name: - Entry: 7 - Data: - - Name: $k - Entry: 1 - Data: _VideoLoadAttemptCounter - - Name: $v - Entry: 7 - Data: 95|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor - - Name: k__BackingField - Entry: 1 - Data: _VideoLoadAttemptCounter - - Name: k__BackingField - Entry: 9 - Data: 38 - - Name: k__BackingField - Entry: 9 - Data: 38 - - Name: k__BackingField - Entry: 7 - Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib - - Name: - Entry: 6 - Data: - - Name: - Entry: 8 - Data: - - Name: k__BackingField - Entry: 5 - Data: false - - Name: _fieldAttributes - Entry: 7 - Data: 96|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib - - Name: - Entry: 12 - Data: 0 - - Name: - Entry: 13 - Data: - - Name: - Entry: 8 - Data: - - Name: - Entry: 8 - Data: - - Name: - Entry: 8 - Data: - - Name: - Entry: 7 - Data: - - Name: $k - Entry: 1 - Data: _UseFallback - - Name: $v - Entry: 7 - Data: 97|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor - Name: k__BackingField Entry: 1 Data: _UseFallback - Name: k__BackingField Entry: 9 - Data: 48 + Data: 43 - Name: k__BackingField Entry: 9 - Data: 48 + Data: 43 - Name: k__BackingField Entry: 7 Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib @@ -1592,7 +1502,55 @@ MonoBehaviour: Data: false - Name: _fieldAttributes Entry: 7 - Data: 98|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib + Data: 89|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib + - Name: + Entry: 12 + Data: 0 + - Name: + Entry: 13 + Data: + - Name: + Entry: 8 + Data: + - Name: + Entry: 8 + Data: + - Name: + Entry: 8 + Data: + - Name: + Entry: 7 + Data: + - Name: $k + Entry: 1 + Data: _FirstDeserialisationComplete + - Name: $v + Entry: 7 + Data: 90|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor + - Name: k__BackingField + Entry: 1 + Data: _FirstDeserialisationComplete + - Name: k__BackingField + Entry: 9 + Data: 43 + - Name: k__BackingField + Entry: 9 + Data: 43 + - Name: k__BackingField + Entry: 7 + Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib + - Name: + Entry: 6 + Data: + - Name: + Entry: 8 + Data: + - Name: k__BackingField + Entry: 5 + Data: false + - Name: _fieldAttributes + Entry: 7 + Data: 91|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib - Name: Entry: 12 Data: 0 diff --git a/Assets/UdonSharp/CaseVideoSyncPlayer/CaseVideoSyncPlayer.cs b/Assets/UdonSharp/CaseVideoSyncPlayer/CaseVideoSyncPlayer.cs index 5a29ff7..22b87d6 100644 --- a/Assets/UdonSharp/CaseVideoSyncPlayer/CaseVideoSyncPlayer.cs +++ b/Assets/UdonSharp/CaseVideoSyncPlayer/CaseVideoSyncPlayer.cs @@ -1,5 +1,4 @@  -using Newtonsoft.Json.Linq; using UdonSharp; using UnityEngine; using VRC.SDK3.Components.Video; @@ -22,10 +21,7 @@ public enum ClueScreenType [UdonBehaviourSyncMode(BehaviourSyncMode.Manual)] public class CaseVideoSyncPlayer : UdonSharpBehaviour { - [SerializeField] private GameManagerRound1 _GameManager; - [SerializeField] private BaseVRCVideoPlayer _VideoPlayer; - //[SerializeField] private float _SyncFrequency = 5.0f; [Header("Meshes")] [SerializeField] private MeshRenderer _BlankScreenMesh; @@ -43,8 +39,8 @@ public class CaseVideoSyncPlayer : UdonSharpBehaviour [UdonSynced, FieldChangeCallback(nameof(ShowScreen))] private ClueScreenType _ShowScreen = ClueScreenType.Blank; [UdonSynced, FieldChangeCallback(nameof(FlashCorrectAnswer))] private bool _FlashCorrectAnswer = false; - [UdonSynced, FieldChangeCallback(nameof(VideoIndex))] private int _VideoIndex = -1; - [UdonSynced, FieldChangeCallback(nameof(TimeAndOffset))] private Vector2 _TimeAndOffset; + [UdonSynced] private int _VideoIndex = -1; + private int _OldVideoIndex = -1; [UdonSynced, FieldChangeCallback(nameof(PlayVideo))] private bool _VideoIsPlaying; @@ -66,6 +62,8 @@ public class CaseVideoSyncPlayer : UdonSharpBehaviour private int _VideoLoadAttemptCounter = 0; private bool _UseFallback = false; + private bool _FirstDeserialisationComplete = false; + private const int IMAGES_PER_MAP_ATLAS = 6; private const int MAX_VIDEO_LOAD_ATTEMPTS = 5; @@ -77,7 +75,7 @@ public class CaseVideoSyncPlayer : UdonSharpBehaviour _MapScreenMesh.sharedMaterial = _MapScreenMaterial; - UpdateMap(false); + _UpdateMap(); } void OnDestroy() @@ -87,45 +85,43 @@ public class CaseVideoSyncPlayer : UdonSharpBehaviour public override void OnDeserialization(DeserializationResult Result) { - { // Map syncing and redownloading + { // Map syncing and redownloading _ReloadMapList(); - if (_MapDownloadsInProgress) + if (!_MapDownloadsInProgress) { - return; - } - - bool MapsNeedLoading = false; - if (_LoadedMaps.Length == _CachedMapIndices.Length) - { - for (int i = 0; i < _CachedMapIndices.Length; i++) + bool MapsNeedLoading = false; + if (_LoadedMaps.Length == _CachedMapIndices.Length) { - if (_CachedMapIndices[i] != _LoadedMaps[i]) + for (int i = 0; i < _CachedMapIndices.Length; i++) { - MapsNeedLoading = true; - break; + if (_CachedMapIndices[i] != _LoadedMaps[i]) + { + MapsNeedLoading = true; + break; + } } } - } - else - { - MapsNeedLoading = true; - } + else + { + MapsNeedLoading = true; + } - if (MapsNeedLoading) - { - QueueMapDownloads(_CachedMapIndices); + if (MapsNeedLoading) + { + QueueMapDownloads(_CachedMapIndices); + } } } - { // Video syncing and redownloading + { // Video list syncing _ReloadVideoList(); } base.OnDeserialization(Result); } - public void SetNewLists(VRCUrl[] Maps, VRCUrl[] Videos) + public void InitialiseLists(VRCUrl[] Maps, VRCUrl[] Videos) { _CaseMapsList = Maps; _ReloadMapList(); @@ -148,8 +144,13 @@ public class CaseVideoSyncPlayer : UdonSharpBehaviour { if (_IsUrlListDifferent(_CaseVideoList, _CaseVideoListCache)) { + _OldVideoIndex = -1; _CaseVideoListCache = (VRCUrl[])_CaseVideoList.Clone(); - _GameManager.TryIntroVideoLoad(); + } + + if (_VideoIndex != _OldVideoIndex) + { + _LoadNewVideoIndex(); } } @@ -208,7 +209,7 @@ public class CaseVideoSyncPlayer : UdonSharpBehaviour int MapPage = SubMapIndex / IMAGES_PER_MAP_ATLAS; if (MapPage == _MapDownloadIndex) { - _MapScreenMaterial.SetTexture("_EmissionMap", _MapImages[MapPage]); + _UpdateSubMap(MapPage); } _MapDownloadIndex++; @@ -235,7 +236,10 @@ public class CaseVideoSyncPlayer : UdonSharpBehaviour { if (FlashCorrectAnswer) { + Debug.Log("[CaseVideoSyncPlayer] Flashing correct answer."); SubMapIndex = (SubMapIndex == 4) ? 3 : 4; + Debug.Log("[CaseVideoSyncPlayer] New submap is " + SubMapIndex); + _UpdateMap(false); SendCustomEventDelayedSeconds(nameof(NextCorrectAnswerFrame), 0.2f); } else @@ -248,44 +252,62 @@ public class CaseVideoSyncPlayer : UdonSharpBehaviour } } - private void UpdateMap(bool SyncResult = true) + private void _UpdateMap(bool Sync = true) { + Debug.Log("[CaseVideoSyncPlayer] Now inside _UpdateMap()"); int MapPage = SubMapIndex / IMAGES_PER_MAP_ATLAS; - int SubmapIndexWrapped = SubMapIndex % IMAGES_PER_MAP_ATLAS; - + Debug.Log("[CaseVideoSyncPlayer] Map page: " + MapPage); if (MapPage < _MapImages.Length) { - switch (SubmapIndexWrapped) - { - case 0: _MapScreenMaterial.SetVector("_MainTex_ST", new Vector4(0.5f, 0.33333333f, 0.0f, 0.66666666f)); break; - case 1: _MapScreenMaterial.SetVector("_MainTex_ST", new Vector4(0.5f, 0.33333333f, 0.5f, 0.66666666f)); break; - case 2: _MapScreenMaterial.SetVector("_MainTex_ST", new Vector4(0.5f, 0.33333333f, 0.0f, 0.33333333f)); break; - case 3: _MapScreenMaterial.SetVector("_MainTex_ST", new Vector4(0.5f, 0.33333333f, 0.5f, 0.33333333f)); break; - case 4: _MapScreenMaterial.SetVector("_MainTex_ST", new Vector4(0.5f, 0.33333333f, 0.0f, 0.0f)); break; - case 5: _MapScreenMaterial.SetVector("_MainTex_ST", new Vector4(0.5f, 0.33333333f, 0.5f, 0.0f)); break; - } - - _MapScreenMaterial.SetTexture("_EmissionMap", _MapImages[MapPage]); + Debug.Log("[CaseVideoSyncPlayer] Updating submap."); + _UpdateSubMap(MapPage); ShowScreen = ClueScreenType.Map; + } - if (SyncResult) - { - RequestSerialization(); - } + if (Sync) + { + RequestSerialization(); + } + } + private void _UpdateSubMap(int MapPage = -1) + { + Debug.Log("[CaseVideoSyncPlayer] Now inside _UpdateSubMap()"); + int SubmapIndexWrapped = SubMapIndex % IMAGES_PER_MAP_ATLAS; + Debug.Log("[CaseVideoSyncPlayer] Wrapped submap index: " + SubmapIndexWrapped); + switch (SubmapIndexWrapped) + { + case 0: _MapScreenMaterial.SetVector("_MainTex_ST", new Vector4(0.5f, 0.33333333f, 0.0f, 0.66666666f)); break; + case 1: _MapScreenMaterial.SetVector("_MainTex_ST", new Vector4(0.5f, 0.33333333f, 0.5f, 0.66666666f)); break; + case 2: _MapScreenMaterial.SetVector("_MainTex_ST", new Vector4(0.5f, 0.33333333f, 0.0f, 0.33333333f)); break; + case 3: _MapScreenMaterial.SetVector("_MainTex_ST", new Vector4(0.5f, 0.33333333f, 0.5f, 0.33333333f)); break; + case 4: _MapScreenMaterial.SetVector("_MainTex_ST", new Vector4(0.5f, 0.33333333f, 0.0f, 0.0f)); break; + case 5: _MapScreenMaterial.SetVector("_MainTex_ST", new Vector4(0.5f, 0.33333333f, 0.5f, 0.0f)); break; + } + + if (MapPage >= 0) + { + _MapScreenMaterial.SetTexture("_EmissionMap", _MapImages[MapPage]); } } - public void SetVideoIndexLocal(int Index) + public void SetVideoIndex(int Index) { - _VideoIndex = Index; - _VideoLoadAttemptCounter = 0; - if (_VideoIndex >= 0) + if (Index != _OldVideoIndex) { - _UseFallback = false; - _LoadVideo_Private(); + _VideoIndex = Index; + _LoadNewVideoIndex(); + RequestSerialization(); } } + private void _LoadNewVideoIndex() + { + _OldVideoIndex = _VideoIndex; + _VideoLoadAttemptCounter = 0; + + _UseFallback = false; + _LoadVideo_Private(); + } private void _LoadVideo_Private() { @@ -293,27 +315,11 @@ public class CaseVideoSyncPlayer : UdonSharpBehaviour } public void TryLoadURL() { - if (VideoIndex >= 0 && VideoIndex < _CaseVideoList.Length) + if (_VideoIndex >= 0 && _VideoIndex < _CaseVideoList.Length) { - _VideoPlayer.LoadURL(_CaseVideoList[VideoIndex]); + _VideoPlayer.LoadURL(_CaseVideoList[_VideoIndex]); SetVideoLoadStatus(IndicationStatus.Loading); } - else - { - if (_VideoLoadAttemptCounter >= MAX_VIDEO_LOAD_ATTEMPTS) - { - Debug.LogError("[CaseVideoSyncPlayer] Index " + VideoIndex + " is out of range. Out of retry attempts. Something is wrong."); - SetVideoLoadStatus(IndicationStatus.LoadFailure); - _VideoLoadAttemptCounter = 0; - } - else - { - Debug.LogWarning("[CaseVideoSyncPlayer] Index " + VideoIndex + " is out of range. Checking range again in 1 second..."); - SetVideoLoadStatus(IndicationStatus.Loading); - _VideoLoadAttemptCounter++; - SendCustomEventDelayedSeconds(nameof(TryLoadURL), 1.1f); - } - } } private void _PlayVideo_Private() @@ -325,7 +331,7 @@ public class CaseVideoSyncPlayer : UdonSharpBehaviour { _VideoPlayer.Stop(); _UseFallback = false; - VideoIndex = -1; + _VideoIndex = -1; SetVideoLoadStatus(IndicationStatus.Idle); } @@ -374,7 +380,7 @@ public class CaseVideoSyncPlayer : UdonSharpBehaviour // SendCustomEventDelayedSeconds(nameof(TryLoadFallbackURL), 5.5f); //} - //SetVideoLoadStatus(IndicationStatus.LoadFailure); + SetVideoLoadStatus(IndicationStatus.LoadFailure); base.OnVideoError(VideoError); } @@ -400,7 +406,6 @@ public class CaseVideoSyncPlayer : UdonSharpBehaviour if (_VideoIsPlaying) { ShowScreen = ClueScreenType.Video; - //UpdateTimeAndOffset(); } else { @@ -415,8 +420,6 @@ public class CaseVideoSyncPlayer : UdonSharpBehaviour PlayVideo = false; ShowScreen = ClueScreenType.Blank; - RequestSerialization(); - base.OnVideoEnd(); } @@ -431,30 +434,6 @@ public class CaseVideoSyncPlayer : UdonSharpBehaviour } } - //private void UpdateTimeAndOffset() - //{ - // if (Networking.IsOwner(gameObject)) - // { - // TimeAndOffset = new Vector2(_VideoPlayer.GetTime(), (float)Networking.GetServerTimeInSeconds()); - - // if (_SyncFrequency > 0.0f) - // { - // SendCustomEventDelayedSeconds(nameof(UpdateTimeAndOffset), _SyncFrequency); - // } - // } - // else - // { - // Resync(); - // } - - // RequestSerialization(); - //} - - public void Resync() - { - _VideoPlayer.SetTime(TimeAndOffset.x + ((float)Networking.GetServerTimeInSeconds() - TimeAndOffset.y)); - } - [NetworkCallable] public void ClearScreen() @@ -496,8 +475,6 @@ public class CaseVideoSyncPlayer : UdonSharpBehaviour break; } } - - RequestSerialization(); } private bool _IsUrlListDifferent(VRCUrl[] New, VRCUrl[] Cached) @@ -526,9 +503,9 @@ public class CaseVideoSyncPlayer : UdonSharpBehaviour set { _SubMapIndex = value; - if (_SubMapIndex >= 0) + if (_SubMapIndex >= 0 && !FlashCorrectAnswer) { - UpdateMap(!FlashCorrectAnswer); + _UpdateMap(); } } get => _SubMapIndex; @@ -555,19 +532,6 @@ public class CaseVideoSyncPlayer : UdonSharpBehaviour get => _FlashCorrectAnswer; } - public int VideoIndex - { - set - { - if (_VideoIndex != value) - { - SetVideoIndexLocal(value); - RequestSerialization(); - } - } - get => _VideoIndex; - } - public bool PlayVideo { set @@ -576,17 +540,4 @@ public class CaseVideoSyncPlayer : UdonSharpBehaviour } get => _VideoIsPlaying; } - - public Vector2 TimeAndOffset - { - set - { - _TimeAndOffset = value; - if (!Networking.IsOwner(gameObject)) - { - Resync(); - } - } - get => _TimeAndOffset; - } } diff --git a/Assets/UdonSharp/Game Managers/CaseManager.cs b/Assets/UdonSharp/Game Managers/CaseManager.cs index b854539..7f3af11 100644 --- a/Assets/UdonSharp/Game Managers/CaseManager.cs +++ b/Assets/UdonSharp/Game Managers/CaseManager.cs @@ -116,8 +116,6 @@ public class CaseManager : UdonSharpBehaviour _CaseFileVideosFallback = CaseFile.FallbackVideoFiles; _CaseFileClueImages = CaseFile.ClueImages; - _Round1Manager.SetNewVideoPlayerLists(_CaseFileMaps, _CaseFileVideos); - VRCStringDownloader.LoadUrl(_CaseFileCluesURL, (IUdonEventReceiver)this); } @@ -268,6 +266,10 @@ public class CaseManager : UdonSharpBehaviour return CrookToString(_AccusedCrook); } + public VRCUrl[] GetMaps() + { + return _CaseFileMaps; + } public VRCUrl GetMap(int MapIndex) { return _CaseFileMaps[MapIndex]; @@ -282,6 +284,10 @@ public class CaseManager : UdonSharpBehaviour return _CaseFileLootImage; } + public VRCUrl[] GetVideos() + { + return _CaseFileVideos; + } public int GetIntroVideo() { return _CaseIntroVideo; diff --git a/Assets/UdonSharp/Game Managers/GameManagerRound1.cs b/Assets/UdonSharp/Game Managers/GameManagerRound1.cs index 615b5d0..544ab94 100644 --- a/Assets/UdonSharp/Game Managers/GameManagerRound1.cs +++ b/Assets/UdonSharp/Game Managers/GameManagerRound1.cs @@ -140,25 +140,9 @@ public class GameManagerRound1 : GameManagerBase Interface.CommentUI.text = _CaseManager.GetCaseDescription(); _GameHasBegun = false; - } - - public void SetNewVideoPlayerLists(VRCUrl[] Maps, VRCUrl[] Videos) - { - _VideoPlayer.SetNewLists(Maps, Videos); - } - public void TryIntroVideoLoad() - { - int IntroVideoIndex = _CaseManager.GetIntroVideo(); - if (IntroVideoIndex >= 0) - { - _VideoPlayer.SetVideoIndexLocal(IntroVideoIndex); - } - else - { - Debug.LogWarning("[GameManagerRound1] Intro video index is currently invalid. Retrying..."); - SendCustomEventDelayedSeconds(nameof(TryIntroVideoLoad), 1.0f); - } + _VideoPlayer.InitialiseLists(_CaseManager.GetMaps(), _CaseManager.GetVideos()); + _VideoPlayer.SetVideoIndex(_CaseManager.GetIntroVideo()); } @@ -1802,7 +1786,7 @@ public class GameManagerRound1 : GameManagerBase if (Presentation.ContainsKey("Videos")) { DataList Videos = Presentation["Videos"].DataList; - _VideoPlayer.VideoIndex = (int)Videos[_QuestionSubstage].Number; + _VideoPlayer.SetVideoIndex((int)Videos[_QuestionSubstage].Number); VideosAvailable = true; }