From e3ea75c29c2d6c20c6114e6f37f0b7abd11ecc21 Mon Sep 17 00:00:00 2001 From: Jamie Greunbaum Date: Fri, 18 Jul 2025 01:23:03 -0400 Subject: [PATCH] Improved sync and loot image loading for round 2. --- Assets/Scenes/witwics.unity | 46 +- Assets/UdonSharp/Game Managers/CaseManager.cs | 3 +- .../Game Managers/GameManagerRound2.asset | 74 +- .../Game Managers/GameManagerRound2.cs | 44 +- .../Location Board/LocationBoard.asset | 722 +++++++++++------- .../UdonSharp/Location Board/LocationBoard.cs | 58 +- .../UtilityScripts/BoneFollower.asset | 2 +- .../UtilityScripts/InteractToggle.asset | 2 +- .../UtilityScripts/PlayerModSetter.asset | 2 +- .../Synced/GlobalToggleObject.asset | 2 +- .../Synced/MasterToggleObject.asset | 2 +- .../UtilityScripts/TrackingDataFollower.asset | 2 +- .../UtilityScripts/WorldAudioSettings.asset | 2 +- 13 files changed, 582 insertions(+), 379 deletions(-) diff --git a/Assets/Scenes/witwics.unity b/Assets/Scenes/witwics.unity index f0739f3..d329ef1 100644 --- a/Assets/Scenes/witwics.unity +++ b/Assets/Scenes/witwics.unity @@ -42296,35 +42296,35 @@ MonoBehaviour: useAssignedLayers: 0 DynamicPrefabs: [] DynamicMaterials: - - {fileID: 2100000, guid: 0c3dfdcd7a2a6ac408ec3d431f9a4932, type: 2} - - {fileID: 2100000, guid: cac39def7281c5c488b6a3465ec1951b, type: 2} - {fileID: 2100000, guid: 9cdc0250a4c9b534fae68ae6aa90bf31, type: 2} + - {fileID: 2100000, guid: faae26a849699fc4b804b74882a344df, type: 2} + - {fileID: 2100000, guid: bd8b723337ae5824fa61f693f76e943f, type: 2} + - {fileID: 2100000, guid: 7eb7cd9bfc12d4c4198d1874ca5a1aa4, type: 2} + - {fileID: 2100000, guid: 79cb8dae66bc60241b5964b24ff1ac7e, type: 2} + - {fileID: 2100000, guid: c4382cc6d54262b46913ae6fe8a3740e, type: 2} + - {fileID: 2100000, guid: 82bace4c334919c4f92e87905c39fdf8, type: 2} + - {fileID: 2100000, guid: d811246c848733b4c8310b4dec5a5fdf, type: 2} + - {fileID: 2100000, guid: f025bfafc9ecec74aa3aab468ef837d7, type: 2} + - {fileID: 2100000, guid: 50e427994e5b0224f966b200c577b78b, type: 2} + - {fileID: 2100000, guid: 5a56ded101f363e46861c8fe1c4f360e, type: 2} + - {fileID: 2100000, guid: 95dd396b63c6ad4429ad37eedc63f20c, type: 2} + - {fileID: 2100000, guid: 74aa3dbc50df9464e8d9d11815b389a7, type: 2} + - {fileID: 2100000, guid: 220d5a1f1701e674794a1083cc2f0bac, type: 2} + - {fileID: 2100000, guid: 49170bf20870c7c45873b3c1966d86af, type: 2} + - {fileID: 2100000, guid: d1244b908a4cccd4397cc9cad45fe846, type: 2} + - {fileID: 2100000, guid: cac39def7281c5c488b6a3465ec1951b, type: 2} + - {fileID: 2100000, guid: 80746b095abb6ce41a1c737df3649172, type: 2} + - {fileID: 2100000, guid: e45d02bbf7268504ca58513c548a58e7, type: 2} + - {fileID: 2100000, guid: accd304c49b7d6d43b97738e8e118342, type: 2} + - {fileID: 2100000, guid: 2c0cd617d97924748a9d5e2eeb2039b5, type: 2} + - {fileID: 2100000, guid: 0c3dfdcd7a2a6ac408ec3d431f9a4932, type: 2} + - {fileID: 2100000, guid: c1b531b2f1a7dab43b46daa7546cfda7, type: 2} + - {fileID: 2100000, guid: c3186340e03d26341969d34663dbf8f3, type: 2} - {fileID: 2100000, guid: af0c1cbaaffed304ba0e3a1fbac41e7e, type: 2} - {fileID: 2100000, guid: cc22c7f9de95cab4488b30fe8699a82a, type: 2} - {fileID: 2100000, guid: fe872fb72ad98da4dbb868481468e848, type: 2} - - {fileID: 2100000, guid: c1b531b2f1a7dab43b46daa7546cfda7, type: 2} - - {fileID: 2100000, guid: accd304c49b7d6d43b97738e8e118342, type: 2} - - {fileID: 2100000, guid: 2c0cd617d97924748a9d5e2eeb2039b5, type: 2} - - {fileID: 2100000, guid: 95dd396b63c6ad4429ad37eedc63f20c, type: 2} - - {fileID: 2100000, guid: 74aa3dbc50df9464e8d9d11815b389a7, type: 2} - - {fileID: 2100000, guid: 79cb8dae66bc60241b5964b24ff1ac7e, type: 2} - - {fileID: 2100000, guid: 5a56ded101f363e46861c8fe1c4f360e, type: 2} - - {fileID: 2100000, guid: 50e427994e5b0224f966b200c577b78b, type: 2} - - {fileID: 2100000, guid: f025bfafc9ecec74aa3aab468ef837d7, type: 2} - - {fileID: 2100000, guid: d811246c848733b4c8310b4dec5a5fdf, type: 2} - - {fileID: 2100000, guid: 82bace4c334919c4f92e87905c39fdf8, type: 2} - - {fileID: 2100000, guid: c4382cc6d54262b46913ae6fe8a3740e, type: 2} - - {fileID: 2100000, guid: 7eb7cd9bfc12d4c4198d1874ca5a1aa4, type: 2} - - {fileID: 2100000, guid: c3186340e03d26341969d34663dbf8f3, type: 2} - - {fileID: 2100000, guid: 49170bf20870c7c45873b3c1966d86af, type: 2} - - {fileID: 2100000, guid: bd8b723337ae5824fa61f693f76e943f, type: 2} - - {fileID: 2100000, guid: faae26a849699fc4b804b74882a344df, type: 2} - {fileID: 2100000, guid: a793cd1d5fe89c440900d816c7b8c323, type: 2} - - {fileID: 2100000, guid: 80746b095abb6ce41a1c737df3649172, type: 2} - {fileID: 2100000, guid: 71ede89a28bd60e4ca2918572046ba90, type: 2} - - {fileID: 2100000, guid: e45d02bbf7268504ca58513c548a58e7, type: 2} - - {fileID: 2100000, guid: d1244b908a4cccd4397cc9cad45fe846, type: 2} - - {fileID: 2100000, guid: 220d5a1f1701e674794a1083cc2f0bac, type: 2} - {fileID: 2100000, guid: 341141e903fac3e4ca54a62259c6d01d, type: 2} LightMapsNear: [] LightMapsFar: [] diff --git a/Assets/UdonSharp/Game Managers/CaseManager.cs b/Assets/UdonSharp/Game Managers/CaseManager.cs index a747430..553aaec 100644 --- a/Assets/UdonSharp/Game Managers/CaseManager.cs +++ b/Assets/UdonSharp/Game Managers/CaseManager.cs @@ -111,7 +111,7 @@ public class CaseManager : UdonSharpBehaviour ErrorString = "Ensure the 'Round 3' dictionary entry is a dictionary with a key called 'Continent' and an integer value."; } - ContinueToRound1(); + ContinueToRound2(); } else { @@ -137,6 +137,7 @@ public class CaseManager : UdonSharpBehaviour RequestSerialization(); } + public string ContinueToRound1() { _HostCard.SetGameManager(_Round1Manager); diff --git a/Assets/UdonSharp/Game Managers/GameManagerRound2.asset b/Assets/UdonSharp/Game Managers/GameManagerRound2.asset index cc1a37f..3e1052c 100644 --- a/Assets/UdonSharp/Game Managers/GameManagerRound2.asset +++ b/Assets/UdonSharp/Game Managers/GameManagerRound2.asset @@ -44,7 +44,7 @@ MonoBehaviour: Data: - Name: Entry: 12 - Data: 7 + Data: 8 - Name: Entry: 7 Data: @@ -386,19 +386,13 @@ MonoBehaviour: Data: 24|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib - Name: Entry: 12 - Data: 2 + Data: 1 - Name: Entry: 7 Data: 25|UdonSharp.UdonSyncedAttribute, UdonSharp.Runtime - Name: Entry: 8 Data: - - Name: - Entry: 7 - Data: 26|UdonSharp.FieldChangeCallbackAttribute, UdonSharp.Runtime - - Name: - Entry: 8 - Data: - Name: Entry: 13 Data: @@ -419,13 +413,13 @@ MonoBehaviour: Data: _StageIndex - Name: $v Entry: 7 - Data: 27|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor + Data: 26|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor - Name: k__BackingField Entry: 1 Data: _StageIndex - Name: k__BackingField Entry: 7 - Data: 28|System.RuntimeType, mscorlib + Data: 27|System.RuntimeType, mscorlib - Name: Entry: 1 Data: System.Int32, mscorlib @@ -434,7 +428,7 @@ MonoBehaviour: Data: - Name: k__BackingField Entry: 9 - Data: 28 + Data: 27 - Name: k__BackingField Entry: 7 Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib @@ -449,13 +443,67 @@ MonoBehaviour: Data: false - Name: _fieldAttributes Entry: 7 - Data: 29|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib + Data: 28|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib - Name: Entry: 12 Data: 1 - Name: Entry: 7 - Data: 30|UdonSharp.UdonSyncedAttribute, UdonSharp.Runtime + Data: 29|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: _CurrentPlayerCounter + - Name: $v + Entry: 7 + Data: 30|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor + - Name: k__BackingField + Entry: 1 + Data: _CurrentPlayerCounter + - Name: k__BackingField + Entry: 9 + Data: 27 + - Name: k__BackingField + Entry: 9 + Data: 27 + - 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: 31|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib + - Name: + Entry: 12 + Data: 1 + - Name: + Entry: 7 + Data: 32|UdonSharp.UdonSyncedAttribute, UdonSharp.Runtime - Name: Entry: 8 Data: diff --git a/Assets/UdonSharp/Game Managers/GameManagerRound2.cs b/Assets/UdonSharp/Game Managers/GameManagerRound2.cs index f7ca2e6..11d8964 100644 --- a/Assets/UdonSharp/Game Managers/GameManagerRound2.cs +++ b/Assets/UdonSharp/Game Managers/GameManagerRound2.cs @@ -24,15 +24,22 @@ public class GameManagerRound2 : GameManagerBase [SerializeField] private LocationBoard _LocationBoard; - [UdonSynced, FieldChangeCallback(nameof(Landmarks))] private string[] _Landmarks; + [UdonSynced] private string[] _Landmarks; [UdonSynced] private int _StageIndex = 0; + [UdonSynced] private int _CurrentPlayerCounter = 0; public override void InitialiseGameMode() { _StageIndex = 0; + _CurrentPlayerCounter = 0; + + _LocationBoard.RandomiseLocations(); + _LocationBoard.SetLootImageURL(_CaseManager.GetLootImage()); + + RequestSerialization(); base.InitialiseGameMode(); } @@ -67,18 +74,17 @@ public class GameManagerRound2 : GameManagerBase } } - Landmarks = NewLandmarks; - RequestSerialization(); + _Landmarks = NewLandmarks; + _LocationBoard.SendCustomNetworkEvent(NetworkEventTarget.All, "PopulateLandmarks", NewLandmarks); _LocationBoard.RandomiseMaterials(); - _LocationBoard.RandomiseLocations(); - LocationBoardReset(); - // Make sure we have the correct interface up after the last function. + + // Make sure we have the correct interface up after resetting the location board HostCardBetweenRoundsInterface Interface = (HostCardBetweenRoundsInterface)GetHostCardInterface(RoundSegmentType.BetweenSegments); - _LocationBoard.RequestSerialization(); + RequestSerialization(); } else { @@ -108,9 +114,9 @@ public class GameManagerRound2 : GameManagerBase HostCardRecoverTheLootInterface RecoverTheLootInterface = (HostCardRecoverTheLootInterface)GetHostCardInterface(RoundSegmentType.RecoverTheLoot); - for (int i = 0; i < Landmarks.Length; i++) + for (int i = 0; i < _Landmarks.Length; i++) { - RecoverTheLootInterface.AddLandmarkName(i, Landmarks[i]); + RecoverTheLootInterface.AddLandmarkName(i, _Landmarks[i]); } NetworkCalling.SendCustomNetworkEvent((IUdonEventReceiver)_AudioManager, NetworkEventTarget.All, @@ -211,6 +217,8 @@ public class GameManagerRound2 : GameManagerBase public void LocationBoardReset() { + _CurrentPlayerCounter++; + NetworkCalling.SendCustomNetworkEvent( (IUdonEventReceiver)_LocationBoard, NetworkEventTarget.All, @@ -222,14 +230,11 @@ public class GameManagerRound2 : GameManagerBase Interface.EnableAllPanelButtons(true); Interface.SetComment("[[PLAYER]], your turn.", Color.black); + + RequestSerialization(); } - public VRCUrl GetLootImageURL() - { - return _CaseManager.GetLootImage(); - } - public Texture GetCrookPortrait() { return _CaseManager.GetAccusedCrookPortrait(); @@ -310,15 +315,4 @@ public class GameManagerRound2 : GameManagerBase default: return "[[ERROR]]"; } } - - - public string[] Landmarks - { - set - { - _Landmarks = value; - _LocationBoard.PopulateBoard(_Landmarks); - } - get => _Landmarks; - } } diff --git a/Assets/UdonSharp/Location Board/LocationBoard.asset b/Assets/UdonSharp/Location Board/LocationBoard.asset index 345d19b..0a2a3d6 100644 --- a/Assets/UdonSharp/Location Board/LocationBoard.asset +++ b/Assets/UdonSharp/Location Board/LocationBoard.asset @@ -44,7 +44,7 @@ MonoBehaviour: Data: - Name: Entry: 12 - Data: 19 + Data: 21 - Name: Entry: 7 Data: @@ -704,19 +704,19 @@ MonoBehaviour: Data: - Name: $k Entry: 1 - Data: _LootMaterial + Data: _LootImageURL - Name: $v Entry: 7 Data: 45|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor - Name: k__BackingField Entry: 1 - Data: _LootMaterial + Data: _LootImageURL - Name: k__BackingField Entry: 7 Data: 46|System.RuntimeType, mscorlib - Name: Entry: 1 - Data: UnityEngine.Material, UnityEngine.CoreModule + Data: VRC.SDKBase.VRCUrl, VRCSDKBase - Name: Entry: 8 Data: @@ -727,23 +727,29 @@ MonoBehaviour: Entry: 7 Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib - Name: - Entry: 6 - Data: + Entry: 3 + Data: 1 - Name: Entry: 8 Data: - Name: k__BackingField Entry: 5 - Data: true + Data: false - Name: _fieldAttributes Entry: 7 Data: 47|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib - Name: Entry: 12 - Data: 1 + Data: 2 - Name: Entry: 7 - Data: 48|UnityEngine.SerializeField, UnityEngine.CoreModule + Data: 48|UdonSharp.UdonSyncedAttribute, UdonSharp.Runtime + - Name: + Entry: 8 + Data: + - Name: + Entry: 7 + Data: 49|UdonSharp.FieldChangeCallbackAttribute, UdonSharp.Runtime - Name: Entry: 8 Data: @@ -764,187 +770,25 @@ MonoBehaviour: Data: - Name: $k Entry: 1 - Data: _LocationSheetMaterialSelections + Data: _Landmarks - Name: $v Entry: 7 - Data: 49|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor + Data: 50|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor - Name: k__BackingField Entry: 1 - Data: _LocationSheetMaterialSelections + Data: _Landmarks - Name: k__BackingField Entry: 7 - Data: 50|System.RuntimeType, mscorlib + Data: 51|System.RuntimeType, mscorlib - Name: Entry: 1 - Data: UnityEngine.Material[], UnityEngine.CoreModule + Data: System.String[], mscorlib - Name: Entry: 8 Data: - Name: k__BackingField Entry: 9 - Data: 50 - - 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: 51|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib - - Name: - Entry: 12 - Data: 1 - - Name: - Entry: 7 - Data: 52|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: _Animator - - Name: $v - Entry: 7 - Data: 53|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor - - Name: k__BackingField - Entry: 1 - Data: _Animator - - Name: k__BackingField - Entry: 7 - Data: 54|System.RuntimeType, mscorlib - - Name: - Entry: 1 - Data: UnityEngine.Animator, UnityEngine.AnimationModule - - Name: - Entry: 8 - Data: - - Name: k__BackingField - Entry: 9 - Data: 54 - - 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: 55|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: _LootImageDownloader - - Name: $v - Entry: 7 - Data: 56|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor - - Name: k__BackingField - Entry: 1 - Data: _LootImageDownloader - - Name: k__BackingField - Entry: 7 - Data: 57|System.RuntimeType, mscorlib - - Name: - Entry: 1 - Data: VRC.SDK3.Image.VRCImageDownloader, VRCSDK3 - - Name: - Entry: 8 - Data: - - Name: k__BackingField - Entry: 9 - 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: 58|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: _ActiveSpinners - - Name: $v - Entry: 7 - Data: 59|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor - - Name: k__BackingField - Entry: 1 - Data: _ActiveSpinners - - Name: k__BackingField - Entry: 9 - Data: 33 - - Name: k__BackingField - Entry: 9 - Data: 33 + Data: 51 - Name: k__BackingField Entry: 7 Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib @@ -959,127 +803,19 @@ MonoBehaviour: Data: false - Name: _fieldAttributes Entry: 7 - Data: 60|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib + Data: 52|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib - Name: Entry: 12 - Data: 1 + Data: 2 - Name: Entry: 7 - Data: 61|UdonSharp.UdonSyncedAttribute, UdonSharp.Runtime - - Name: - Entry: 8 - Data: - - Name: - Entry: 13 - Data: - - Name: - Entry: 8 - Data: - - Name: - Entry: 8 - Data: + Data: 53|UdonSharp.UdonSyncedAttribute, UdonSharp.Runtime - Name: Entry: 8 Data: - Name: Entry: 7 - Data: - - Name: $k - Entry: 1 - Data: _OrderIsCorrect - - Name: $v - Entry: 7 - Data: 62|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor - - Name: k__BackingField - Entry: 1 - Data: _OrderIsCorrect - - Name: k__BackingField - Entry: 7 - Data: 63|System.RuntimeType, mscorlib - - Name: - Entry: 1 - Data: System.Boolean[], 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 - - Name: - Entry: 3 - Data: 1 - - Name: - Entry: 8 - Data: - - Name: k__BackingField - Entry: 5 - Data: false - - Name: _fieldAttributes - Entry: 7 - Data: 64|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib - - Name: - Entry: 12 - Data: 1 - - Name: - Entry: 7 - Data: 65|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: _HasBeenCheckedBefore - - Name: $v - Entry: 7 - Data: 66|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor - - Name: k__BackingField - Entry: 1 - Data: _HasBeenCheckedBefore - - Name: k__BackingField - Entry: 9 - Data: 63 - - Name: k__BackingField - Entry: 9 - Data: 63 - - 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: 67|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib - - Name: - Entry: 12 - Data: 1 - - Name: - Entry: 7 - Data: 68|UdonSharp.UdonSyncedAttribute, UdonSharp.Runtime + Data: 54|UdonSharp.FieldChangeCallbackAttribute, UdonSharp.Runtime - Name: Entry: 8 Data: @@ -1103,13 +839,13 @@ MonoBehaviour: Data: _RandomMaterialSettings - Name: $v Entry: 7 - Data: 69|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor + Data: 55|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor - Name: k__BackingField Entry: 1 Data: _RandomMaterialSettings - Name: k__BackingField Entry: 7 - Data: 70|System.RuntimeType, mscorlib + Data: 56|System.RuntimeType, mscorlib - Name: Entry: 1 Data: System.Int32[], mscorlib @@ -1118,7 +854,7 @@ MonoBehaviour: Data: - Name: k__BackingField Entry: 9 - Data: 70 + Data: 56 - Name: k__BackingField Entry: 7 Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib @@ -1133,19 +869,19 @@ MonoBehaviour: Data: false - Name: _fieldAttributes Entry: 7 - Data: 71|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib + Data: 57|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib - Name: Entry: 12 Data: 2 - Name: Entry: 7 - Data: 72|UdonSharp.UdonSyncedAttribute, UdonSharp.Runtime + Data: 58|UdonSharp.UdonSyncedAttribute, UdonSharp.Runtime - Name: Entry: 8 Data: - Name: Entry: 7 - Data: 73|UdonSharp.FieldChangeCallbackAttribute, UdonSharp.Runtime + Data: 59|UdonSharp.FieldChangeCallbackAttribute, UdonSharp.Runtime - Name: Entry: 8 Data: @@ -1161,6 +897,402 @@ MonoBehaviour: - Name: Entry: 8 Data: + - Name: + Entry: 7 + Data: + - Name: $k + Entry: 1 + Data: _ActiveSpinners + - Name: $v + Entry: 7 + Data: 60|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor + - Name: k__BackingField + Entry: 1 + Data: _ActiveSpinners + - 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: 3 + Data: 1 + - 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: 1 + - Name: + Entry: 7 + Data: 62|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: _OrderIsCorrect + - Name: $v + Entry: 7 + Data: 63|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor + - Name: k__BackingField + Entry: 1 + Data: _OrderIsCorrect + - Name: k__BackingField + Entry: 7 + Data: 64|System.RuntimeType, mscorlib + - Name: + Entry: 1 + Data: System.Boolean[], mscorlib + - Name: + Entry: 8 + Data: + - Name: k__BackingField + Entry: 9 + Data: 64 + - 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: 65|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib + - Name: + Entry: 12 + Data: 1 + - Name: + Entry: 7 + Data: 66|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: _HasBeenCheckedBefore + - Name: $v + Entry: 7 + Data: 67|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor + - Name: k__BackingField + Entry: 1 + Data: _HasBeenCheckedBefore + - Name: k__BackingField + Entry: 9 + Data: 64 + - Name: k__BackingField + Entry: 9 + Data: 64 + - 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: 68|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib + - Name: + Entry: 12 + Data: 1 + - Name: + Entry: 7 + Data: 69|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: _LootMaterial + - Name: $v + Entry: 7 + Data: 70|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor + - Name: k__BackingField + Entry: 1 + Data: _LootMaterial + - Name: k__BackingField + Entry: 7 + Data: 71|System.RuntimeType, mscorlib + - Name: + Entry: 1 + Data: UnityEngine.Material, UnityEngine.CoreModule + - Name: + Entry: 8 + Data: + - Name: k__BackingField + Entry: 9 + Data: 71 + - 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: 72|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib + - Name: + Entry: 12 + Data: 1 + - Name: + Entry: 7 + Data: 73|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: _LocationSheetMaterialSelections + - Name: $v + Entry: 7 + Data: 74|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor + - Name: k__BackingField + Entry: 1 + Data: _LocationSheetMaterialSelections + - Name: k__BackingField + Entry: 7 + Data: 75|System.RuntimeType, mscorlib + - Name: + Entry: 1 + Data: UnityEngine.Material[], UnityEngine.CoreModule + - Name: + Entry: 8 + Data: + - Name: k__BackingField + Entry: 9 + Data: 75 + - 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: 76|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib + - Name: + Entry: 12 + Data: 1 + - Name: + Entry: 7 + Data: 77|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: _Animator + - Name: $v + Entry: 7 + Data: 78|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor + - Name: k__BackingField + Entry: 1 + Data: _Animator + - Name: k__BackingField + Entry: 7 + Data: 79|System.RuntimeType, mscorlib + - Name: + Entry: 1 + Data: UnityEngine.Animator, UnityEngine.AnimationModule + - Name: + Entry: 8 + Data: + - Name: k__BackingField + Entry: 9 + Data: 79 + - 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: 80|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: _LootImageDownloader + - Name: $v + Entry: 7 + Data: 81|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor + - Name: k__BackingField + Entry: 1 + Data: _LootImageDownloader + - Name: k__BackingField + Entry: 7 + Data: 82|System.RuntimeType, mscorlib + - Name: + Entry: 1 + Data: VRC.SDK3.Image.VRCImageDownloader, VRCSDK3 + - Name: + Entry: 8 + Data: + - Name: k__BackingField + Entry: 9 + Data: 82 + - 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: 83|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: 13 Data: diff --git a/Assets/UdonSharp/Location Board/LocationBoard.cs b/Assets/UdonSharp/Location Board/LocationBoard.cs index c4b0f36..38cd5f6 100644 --- a/Assets/UdonSharp/Location Board/LocationBoard.cs +++ b/Assets/UdonSharp/Location Board/LocationBoard.cs @@ -25,23 +25,27 @@ public class LocationBoard : UdonSharpBehaviour [UdonSynced, FieldChangeCallback(nameof(WarrantLocation))] private int _WarrantLocation = 0; [UdonSynced, FieldChangeCallback(nameof(CrookLocation))] private int _CrookLocation = 0; + [UdonSynced, FieldChangeCallback(nameof(LootImageURL))] private VRCUrl _LootImageURL; + + [UdonSynced, FieldChangeCallback(nameof(Landmarks))] private string[] _Landmarks; + [UdonSynced, FieldChangeCallback(nameof(RandomMaterialSettings))] private int[] _RandomMaterialSettings; + + [UdonSynced] private int _ActiveSpinners = 0; + [UdonSynced] private bool[] _OrderIsCorrect = new bool[3]; + [UdonSynced] private bool[] _HasBeenCheckedBefore; + [SerializeField] private Material _LootMaterial; [SerializeField] private Material[] _LocationSheetMaterialSelections; private Animator _Animator; private VRCImageDownloader _LootImageDownloader; - [UdonSynced] private int _ActiveSpinners = 0; - [UdonSynced] private bool[] _OrderIsCorrect = new bool[3]; - [UdonSynced] private bool[] _HasBeenCheckedBefore; - - [UdonSynced, FieldChangeCallback(nameof(RandomMaterialSettings))] private int[] _RandomMaterialSettings; - void Start() { _Animator = GetComponent(); _LootImageDownloader = new VRCImageDownloader(); + _HasBeenCheckedBefore = new bool[_LocationPanelsEmpty.Length]; MeshRenderer LootMesh; if (LootMesh = _LocationPanelsLoot[0].GetComponent()) @@ -55,24 +59,30 @@ public class LocationBoard : UdonSharpBehaviour _LootImageDownloader.Dispose(); } - public void PopulateBoard(string[] Landmarks) + [NetworkCallable] + public void PopulateLandmarks(string[] NewLandmarks) { - _HasBeenCheckedBefore = new bool[_LocationPanelsEmpty.Length]; - - for (int i = 0; i < Landmarks.Length; i++) + for (int i = 0; i < NewLandmarks.Length; i++) { - _LocationPanelText[i].text = Landmarks[i]; + _LocationPanelText[i].text = NewLandmarks[i]; } + _Landmarks = NewLandmarks; } - private void GetLootImage() + public void SetLootImageURL(VRCUrl URL) + { + LootImageURL = URL; + RequestSerialization(); + } + + private void DownloadLootImage() { TextureInfo AdditionalTextureInfo = new TextureInfo(); AdditionalTextureInfo.WrapModeU = TextureWrapMode.Clamp; AdditionalTextureInfo.WrapModeV = TextureWrapMode.Clamp; AdditionalTextureInfo.GenerateMipMaps = true; _LootImageDownloader.DownloadImage( - _GameManager.GetLootImageURL(), _LootMaterial, + LootImageURL, _LootMaterial, null, AdditionalTextureInfo); } @@ -357,8 +367,6 @@ public class LocationBoard : UdonSharpBehaviour PlaceEmpty(_LootLocation); _LootLocation = value; PlaceLoot(value); - - GetLootImage(); } get => _LootLocation; } @@ -385,6 +393,26 @@ public class LocationBoard : UdonSharpBehaviour get => _CrookLocation; } + public VRCUrl LootImageURL + { + set + { + _LootImageURL = value; + DownloadLootImage(); + } + get => _LootImageURL; + } + + public string[] Landmarks + { + set + { + _Landmarks = value; + PopulateLandmarks(value); + } + get => _Landmarks; + } + public int[] RandomMaterialSettings { set diff --git a/Assets/UdonSharp/UtilityScripts/BoneFollower.asset b/Assets/UdonSharp/UtilityScripts/BoneFollower.asset index b946757..036a370 100644 --- a/Assets/UdonSharp/UtilityScripts/BoneFollower.asset +++ b/Assets/UdonSharp/UtilityScripts/BoneFollower.asset @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: c333ccfdd0cbdbc4ca30cef2dd6e6b9b, type: 3} m_Name: BoneFollower m_EditorClassIdentifier: - serializedUdonProgramAsset: {fileID: 11400000, guid: ccbda9bf23e2f714c9226283c77a92e5, + serializedUdonProgramAsset: {fileID: 11400000, guid: 52ecc8a73071e8e40928c3609699fcf4, type: 2} udonAssembly: assemblyError: diff --git a/Assets/UdonSharp/UtilityScripts/InteractToggle.asset b/Assets/UdonSharp/UtilityScripts/InteractToggle.asset index b35639e..13d78db 100644 --- a/Assets/UdonSharp/UtilityScripts/InteractToggle.asset +++ b/Assets/UdonSharp/UtilityScripts/InteractToggle.asset @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: c333ccfdd0cbdbc4ca30cef2dd6e6b9b, type: 3} m_Name: InteractToggle m_EditorClassIdentifier: - serializedUdonProgramAsset: {fileID: 11400000, guid: 405e38d3dfb2f514daeed0e28fbb4864, + serializedUdonProgramAsset: {fileID: 11400000, guid: 873dfce61b1514e429c92e0d2fded7de, type: 2} udonAssembly: assemblyError: diff --git a/Assets/UdonSharp/UtilityScripts/PlayerModSetter.asset b/Assets/UdonSharp/UtilityScripts/PlayerModSetter.asset index 1def3de..d89a1a4 100644 --- a/Assets/UdonSharp/UtilityScripts/PlayerModSetter.asset +++ b/Assets/UdonSharp/UtilityScripts/PlayerModSetter.asset @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: c333ccfdd0cbdbc4ca30cef2dd6e6b9b, type: 3} m_Name: PlayerModSetter m_EditorClassIdentifier: - serializedUdonProgramAsset: {fileID: 11400000, guid: f938e6c4ff027a74da405a1f9353fd2b, + serializedUdonProgramAsset: {fileID: 11400000, guid: e81558796a212ab4d88e305e2010f24b, type: 2} udonAssembly: assemblyError: diff --git a/Assets/UdonSharp/UtilityScripts/Synced/GlobalToggleObject.asset b/Assets/UdonSharp/UtilityScripts/Synced/GlobalToggleObject.asset index 8101274..ea98aa4 100644 --- a/Assets/UdonSharp/UtilityScripts/Synced/GlobalToggleObject.asset +++ b/Assets/UdonSharp/UtilityScripts/Synced/GlobalToggleObject.asset @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: c333ccfdd0cbdbc4ca30cef2dd6e6b9b, type: 3} m_Name: GlobalToggleObject m_EditorClassIdentifier: - serializedUdonProgramAsset: {fileID: 11400000, guid: c49c9265a3ef24642a6a4465d0a78872, + serializedUdonProgramAsset: {fileID: 11400000, guid: 2fe8ced6184000f49bca526cd2c5891c, type: 2} udonAssembly: assemblyError: diff --git a/Assets/UdonSharp/UtilityScripts/Synced/MasterToggleObject.asset b/Assets/UdonSharp/UtilityScripts/Synced/MasterToggleObject.asset index 901d05e..b4b3ede 100644 --- a/Assets/UdonSharp/UtilityScripts/Synced/MasterToggleObject.asset +++ b/Assets/UdonSharp/UtilityScripts/Synced/MasterToggleObject.asset @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: c333ccfdd0cbdbc4ca30cef2dd6e6b9b, type: 3} m_Name: MasterToggleObject m_EditorClassIdentifier: - serializedUdonProgramAsset: {fileID: 11400000, guid: 04024a76ab1924042ba521e11cb76d91, + serializedUdonProgramAsset: {fileID: 11400000, guid: a2d01d9f36ac6df49831be249e48ecc4, type: 2} udonAssembly: assemblyError: diff --git a/Assets/UdonSharp/UtilityScripts/TrackingDataFollower.asset b/Assets/UdonSharp/UtilityScripts/TrackingDataFollower.asset index da92932..c624599 100644 --- a/Assets/UdonSharp/UtilityScripts/TrackingDataFollower.asset +++ b/Assets/UdonSharp/UtilityScripts/TrackingDataFollower.asset @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: c333ccfdd0cbdbc4ca30cef2dd6e6b9b, type: 3} m_Name: TrackingDataFollower m_EditorClassIdentifier: - serializedUdonProgramAsset: {fileID: 11400000, guid: 17f8fbbe6cc186d4f8dbb057b01a4ec2, + serializedUdonProgramAsset: {fileID: 11400000, guid: 1b89d4552983c0448a7389decec3b555, type: 2} udonAssembly: assemblyError: diff --git a/Assets/UdonSharp/UtilityScripts/WorldAudioSettings.asset b/Assets/UdonSharp/UtilityScripts/WorldAudioSettings.asset index ee4621f..5226f4f 100644 --- a/Assets/UdonSharp/UtilityScripts/WorldAudioSettings.asset +++ b/Assets/UdonSharp/UtilityScripts/WorldAudioSettings.asset @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: c333ccfdd0cbdbc4ca30cef2dd6e6b9b, type: 3} m_Name: WorldAudioSettings m_EditorClassIdentifier: - serializedUdonProgramAsset: {fileID: 11400000, guid: 128d924a3066b7546b2d1c73e61006ab, + serializedUdonProgramAsset: {fileID: 11400000, guid: 994b559b0f158b4499f8937980ed8694, type: 2} udonAssembly: assemblyError: