- Reworked CameraTimedSwitcher to be able to execute callback functions.

- Cameras are thus much more reliable and less likely to desync in round 2.
This commit is contained in:
2025-12-23 05:03:14 -05:00
parent 2281fae54e
commit 27abad7657
7 changed files with 900 additions and 250 deletions
@@ -44,7 +44,7 @@ MonoBehaviour:
Data:
- Name:
Entry: 12
Data: 5
Data: 8
- Name:
Entry: 7
Data:
@@ -210,12 +210,229 @@ MonoBehaviour:
- Name: _fieldAttributes
Entry: 7
Data: 13|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib
- Name:
Entry: 12
Data: 2
- Name:
Entry: 7
Data: 14|UnityEngine.SpaceAttribute, UnityEngine.CoreModule
- Name: height
Entry: 4
Data: 8
- 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: _LoopPoint
- Name: $v
Entry: 7
Data: 16|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor
- Name: <Name>k__BackingField
Entry: 1
Data: _LoopPoint
- Name: <UserType>k__BackingField
Entry: 7
Data: 17|System.RuntimeType, mscorlib
- Name:
Entry: 1
Data: System.Int32, mscorlib
- Name:
Entry: 8
Data:
- Name: <SystemType>k__BackingField
Entry: 9
Data: 17
- Name: <SyncMode>k__BackingField
Entry: 7
Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib
- Name:
Entry: 6
Data:
- Name:
Entry: 8
Data:
- Name: <IsSerialized>k__BackingField
Entry: 5
Data: true
- Name: _fieldAttributes
Entry: 7
Data: 18|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib
- Name:
Entry: 12
Data: 2
- Name:
Entry: 7
Data: 19|UnityEngine.SerializeField, UnityEngine.CoreModule
- Name:
Entry: 8
Data:
- Name:
Entry: 7
Data: 20|UnityEngine.TooltipAttribute, UnityEngine.CoreModule
- Name: tooltip
Entry: 1
Data: Loop to this point in the camera sequence. Default is index 0 (the beginning)
- 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: _FirstLoopCallbackObject
- Name: $v
Entry: 7
Data: 21|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor
- Name: <Name>k__BackingField
Entry: 1
Data: _FirstLoopCallbackObject
- Name: <UserType>k__BackingField
Entry: 7
Data: 22|System.RuntimeType, mscorlib
- Name:
Entry: 1
Data: UdonSharp.UdonSharpBehaviour, UdonSharp.Runtime
- Name:
Entry: 8
Data:
- Name: <SystemType>k__BackingField
Entry: 9
Data: 4
- Name: <SyncMode>k__BackingField
Entry: 7
Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib
- Name:
Entry: 6
Data:
- Name:
Entry: 8
Data:
- Name: <IsSerialized>k__BackingField
Entry: 5
Data: true
- Name: _fieldAttributes
Entry: 7
Data: 23|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib
- Name:
Entry: 12
Data: 3
- Name:
Entry: 7
Data: 24|UnityEngine.SpaceAttribute, UnityEngine.CoreModule
- Name: height
Entry: 4
Data: 8
- Name:
Entry: 8
Data:
- Name:
Entry: 7
Data: 25|UnityEngine.SerializeField, UnityEngine.CoreModule
- Name:
Entry: 8
Data:
- Name:
Entry: 7
Data: 26|UnityEngine.TooltipAttribute, UnityEngine.CoreModule
- Name: tooltip
Entry: 1
Data: Set this to call a function on an UdonSharpBehaviour instead of looping
the camera sequence
- 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: _FirstLoopCallbackFunction
- Name: $v
Entry: 7
Data: 27|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor
- Name: <Name>k__BackingField
Entry: 1
Data: _FirstLoopCallbackFunction
- Name: <UserType>k__BackingField
Entry: 7
Data: 28|System.RuntimeType, mscorlib
- Name:
Entry: 1
Data: System.String, mscorlib
- Name:
Entry: 8
Data:
- Name: <SystemType>k__BackingField
Entry: 9
Data: 28
- Name: <SyncMode>k__BackingField
Entry: 7
Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib
- Name:
Entry: 6
Data:
- Name:
Entry: 8
Data:
- Name: <IsSerialized>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: 14|UnityEngine.SerializeField, UnityEngine.CoreModule
Data: 30|UnityEngine.SerializeField, UnityEngine.CoreModule
- Name:
Entry: 8
Data:
@@ -239,13 +456,13 @@ MonoBehaviour:
Data: _Active
- Name: $v
Entry: 7
Data: 15|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor
Data: 31|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor
- Name: <Name>k__BackingField
Entry: 1
Data: _Active
- Name: <UserType>k__BackingField
Entry: 7
Data: 16|System.RuntimeType, mscorlib
Data: 32|System.RuntimeType, mscorlib
- Name:
Entry: 1
Data: System.Boolean, mscorlib
@@ -254,7 +471,7 @@ MonoBehaviour:
Data:
- Name: <SystemType>k__BackingField
Entry: 9
Data: 16
Data: 32
- Name: <SyncMode>k__BackingField
Entry: 7
Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib
@@ -269,19 +486,19 @@ MonoBehaviour:
Data: false
- Name: _fieldAttributes
Entry: 7
Data: 17|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib
Data: 33|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib
- Name:
Entry: 12
Data: 2
- Name:
Entry: 7
Data: 18|UdonSharp.UdonSyncedAttribute, UdonSharp.Runtime
Data: 34|UdonSharp.UdonSyncedAttribute, UdonSharp.Runtime
- Name:
Entry: 8
Data:
- Name:
Entry: 7
Data: 19|UdonSharp.FieldChangeCallbackAttribute, UdonSharp.Runtime
Data: 35|UdonSharp.FieldChangeCallbackAttribute, UdonSharp.Runtime
- Name:
Entry: 8
Data:
@@ -305,22 +522,16 @@ MonoBehaviour:
Data: _NextCameraIndex
- Name: $v
Entry: 7
Data: 20|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor
Data: 36|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor
- Name: <Name>k__BackingField
Entry: 1
Data: _NextCameraIndex
- Name: <UserType>k__BackingField
Entry: 7
Data: 21|System.RuntimeType, mscorlib
- Name:
Entry: 1
Data: System.Int32, mscorlib
- Name:
Entry: 8
Data:
Entry: 9
Data: 17
- Name: <SystemType>k__BackingField
Entry: 9
Data: 21
Data: 17
- Name: <SyncMode>k__BackingField
Entry: 7
Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib
@@ -335,7 +546,7 @@ MonoBehaviour:
Data: false
- Name: _fieldAttributes
Entry: 7
Data: 22|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib
Data: 37|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib
- Name:
Entry: 12
Data: 0
@@ -10,10 +10,16 @@ using VRC.Udon;
[UdonBehaviourSyncMode(BehaviourSyncMode.Manual)]
public class CameraTimedSwitcher : UdonSharpBehaviour
{
[SerializeField] private CameraControllerBase _CameraController;
[SerializeField] private string[] _SwitchFunctions;
[SerializeField] private float _TimeBetweenCuts = 5.0f;
[SerializeField] private CameraControllerBase _CameraController;
[SerializeField] private string[] _SwitchFunctions;
[Space]
[SerializeField] private float _TimeBetweenCuts = 5.0f;
[SerializeField, Tooltip("Loop to this point in the camera sequence. Default is index 0 (the beginning)")]
private int _LoopPoint = 0;
[Space]
[SerializeField, Tooltip("Set this to call a function on an UdonSharpBehaviour instead of looping the camera sequence")]
private UdonSharpBehaviour _FirstLoopCallbackObject = null;
[SerializeField] private string _FirstLoopCallbackFunction = "";
[UdonSynced, FieldChangeCallback(nameof(Activate))] private bool _Active = false;
@@ -26,6 +32,19 @@ public class CameraTimedSwitcher : UdonSharpBehaviour
{
_CameraController.SendCustomEvent(_SwitchFunctions[_NextCameraIndex]);
_NextCameraIndex = (_NextCameraIndex + 1) % _SwitchFunctions.Length;
if (_NextCameraIndex == 0)
{
if (_FirstLoopCallbackObject != null)
{
Activate = false;
_FirstLoopCallbackObject.SendCustomEvent(_FirstLoopCallbackFunction);
return;
}
else
{
_NextCameraIndex = _LoopPoint;
}
}
SendCustomEventDelayedSeconds(nameof(SwitchToNextCamera), _TimeBetweenCuts);
}
@@ -44,7 +44,7 @@ MonoBehaviour:
Data:
- Name:
Entry: 12
Data: 20
Data: 22
- Name:
Entry: 7
Data:
@@ -647,13 +647,13 @@ MonoBehaviour:
Data:
- Name: $k
Entry: 1
Data: Player1AndWideShotTimerToggle
Data: Player1AndLocationBoardTimerToggle
- Name: $v
Entry: 7
Data: 40|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor
- Name: <Name>k__BackingField
Entry: 1
Data: Player1AndWideShotTimerToggle
Data: Player1AndLocationBoardTimerToggle
- Name: <UserType>k__BackingField
Entry: 9
Data: 33
@@ -701,13 +701,13 @@ MonoBehaviour:
Data:
- Name: $k
Entry: 1
Data: Player2AndWideShotTimerToggle
Data: Player2AndLocationBoardTimerToggle
- Name: $v
Entry: 7
Data: 43|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor
- Name: <Name>k__BackingField
Entry: 1
Data: Player2AndWideShotTimerToggle
Data: Player2AndLocationBoardTimerToggle
- Name: <UserType>k__BackingField
Entry: 9
Data: 33
@@ -755,16 +755,124 @@ MonoBehaviour:
Data:
- Name: $k
Entry: 1
Data: Player1CameraAnchor
Data: LocationBoardAndShortHostTimerToggle
- Name: $v
Entry: 7
Data: 46|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor
- Name: <Name>k__BackingField
Entry: 1
Data: LocationBoardAndShortHostTimerToggle
- Name: <UserType>k__BackingField
Entry: 9
Data: 33
- Name: <SystemType>k__BackingField
Entry: 9
Data: 4
- Name: <SyncMode>k__BackingField
Entry: 7
Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib
- Name:
Entry: 6
Data:
- Name:
Entry: 8
Data:
- Name: <IsSerialized>k__BackingField
Entry: 5
Data: true
- Name: _fieldAttributes
Entry: 7
Data: 47|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib
- Name:
Entry: 12
Data: 1
- Name:
Entry: 7
Data: 48|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: LocationBoardAndLongHostTimerToggle
- Name: $v
Entry: 7
Data: 49|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor
- Name: <Name>k__BackingField
Entry: 1
Data: LocationBoardAndLongHostTimerToggle
- Name: <UserType>k__BackingField
Entry: 9
Data: 33
- Name: <SystemType>k__BackingField
Entry: 9
Data: 4
- Name: <SyncMode>k__BackingField
Entry: 7
Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib
- Name:
Entry: 6
Data:
- Name:
Entry: 8
Data:
- Name: <IsSerialized>k__BackingField
Entry: 5
Data: true
- Name: _fieldAttributes
Entry: 7
Data: 50|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib
- Name:
Entry: 12
Data: 1
- Name:
Entry: 7
Data: 51|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: Player1CameraAnchor
- Name: $v
Entry: 7
Data: 52|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor
- Name: <Name>k__BackingField
Entry: 1
Data: Player1CameraAnchor
- Name: <UserType>k__BackingField
Entry: 7
Data: 47|System.RuntimeType, mscorlib
Data: 53|System.RuntimeType, mscorlib
- Name:
Entry: 1
Data: CameraAnchor, Assembly-CSharp
@@ -788,127 +896,19 @@ MonoBehaviour:
Data: true
- Name: _fieldAttributes
Entry: 7
Data: 48|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib
Data: 54|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib
- Name:
Entry: 12
Data: 2
- Name:
Entry: 7
Data: 49|UnityEngine.SpaceAttribute, UnityEngine.CoreModule
Data: 55|UnityEngine.SpaceAttribute, UnityEngine.CoreModule
- Name: height
Entry: 4
Data: 8
- Name:
Entry: 8
Data:
- Name:
Entry: 7
Data: 50|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: Player2CameraAnchor
- Name: $v
Entry: 7
Data: 51|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor
- Name: <Name>k__BackingField
Entry: 1
Data: Player2CameraAnchor
- Name: <UserType>k__BackingField
Entry: 9
Data: 47
- Name: <SystemType>k__BackingField
Entry: 9
Data: 4
- Name: <SyncMode>k__BackingField
Entry: 7
Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib
- Name:
Entry: 6
Data:
- Name:
Entry: 8
Data:
- Name: <IsSerialized>k__BackingField
Entry: 5
Data: true
- Name: _fieldAttributes
Entry: 7
Data: 52|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib
- Name:
Entry: 12
Data: 1
- Name:
Entry: 7
Data: 53|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: HostAndWinnerCameraAnchor
- Name: $v
Entry: 7
Data: 54|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor
- Name: <Name>k__BackingField
Entry: 1
Data: HostAndWinnerCameraAnchor
- Name: <UserType>k__BackingField
Entry: 9
Data: 47
- Name: <SystemType>k__BackingField
Entry: 9
Data: 4
- Name: <SyncMode>k__BackingField
Entry: 7
Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib
- Name:
Entry: 6
Data:
- Name:
Entry: 8
Data:
- Name: <IsSerialized>k__BackingField
Entry: 5
Data: true
- Name: _fieldAttributes
Entry: 7
Data: 55|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib
- Name:
Entry: 12
Data: 1
- Name:
Entry: 7
Data: 56|UnityEngine.SerializeField, UnityEngine.CoreModule
@@ -932,16 +932,16 @@ MonoBehaviour:
Data:
- Name: $k
Entry: 1
Data: LocationBoardCameraAnchor
Data: Player2CameraAnchor
- Name: $v
Entry: 7
Data: 57|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor
- Name: <Name>k__BackingField
Entry: 1
Data: LocationBoardCameraAnchor
Data: Player2CameraAnchor
- Name: <UserType>k__BackingField
Entry: 9
Data: 47
Data: 53
- Name: <SystemType>k__BackingField
Entry: 9
Data: 4
@@ -986,16 +986,16 @@ MonoBehaviour:
Data:
- Name: $k
Entry: 1
Data: ModemCameraAnchor
Data: HostAndWinnerCameraAnchor
- Name: $v
Entry: 7
Data: 60|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor
- Name: <Name>k__BackingField
Entry: 1
Data: ModemCameraAnchor
Data: HostAndWinnerCameraAnchor
- Name: <UserType>k__BackingField
Entry: 9
Data: 47
Data: 53
- Name: <SystemType>k__BackingField
Entry: 9
Data: 4
@@ -1040,16 +1040,16 @@ MonoBehaviour:
Data:
- Name: $k
Entry: 1
Data: VideoPlayerCameraAnchor
Data: LocationBoardCameraAnchor
- Name: $v
Entry: 7
Data: 63|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor
- Name: <Name>k__BackingField
Entry: 1
Data: VideoPlayerCameraAnchor
Data: LocationBoardCameraAnchor
- Name: <UserType>k__BackingField
Entry: 9
Data: 47
Data: 53
- Name: <SystemType>k__BackingField
Entry: 9
Data: 4
@@ -1094,16 +1094,16 @@ MonoBehaviour:
Data:
- Name: $k
Entry: 1
Data: WideShotCameraAnchor
Data: ModemCameraAnchor
- Name: $v
Entry: 7
Data: 66|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor
- Name: <Name>k__BackingField
Entry: 1
Data: WideShotCameraAnchor
Data: ModemCameraAnchor
- Name: <UserType>k__BackingField
Entry: 9
Data: 47
Data: 53
- Name: <SystemType>k__BackingField
Entry: 9
Data: 4
@@ -1122,12 +1122,120 @@ 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|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: VideoPlayerCameraAnchor
- Name: $v
Entry: 7
Data: 69|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor
- Name: <Name>k__BackingField
Entry: 1
Data: VideoPlayerCameraAnchor
- Name: <UserType>k__BackingField
Entry: 9
Data: 53
- Name: <SystemType>k__BackingField
Entry: 9
Data: 4
- Name: <SyncMode>k__BackingField
Entry: 7
Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib
- Name:
Entry: 6
Data:
- Name:
Entry: 8
Data:
- Name: <IsSerialized>k__BackingField
Entry: 5
Data: true
- Name: _fieldAttributes
Entry: 7
Data: 70|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib
- Name:
Entry: 12
Data: 1
- Name:
Entry: 7
Data: 71|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: WideShotCameraAnchor
- Name: $v
Entry: 7
Data: 72|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor
- Name: <Name>k__BackingField
Entry: 1
Data: WideShotCameraAnchor
- Name: <UserType>k__BackingField
Entry: 9
Data: 53
- Name: <SystemType>k__BackingField
Entry: 9
Data: 4
- Name: <SyncMode>k__BackingField
Entry: 7
Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib
- Name:
Entry: 6
Data:
- Name:
Entry: 8
Data:
- Name: <IsSerialized>k__BackingField
Entry: 5
Data: true
- Name: _fieldAttributes
Entry: 7
Data: 73|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib
- Name:
Entry: 12
Data: 2
- Name:
Entry: 7
Data: 68|UnityEngine.SpaceAttribute, UnityEngine.CoreModule
Data: 74|UnityEngine.SpaceAttribute, UnityEngine.CoreModule
- Name: height
Entry: 4
Data: 8
@@ -1136,7 +1244,7 @@ MonoBehaviour:
Data:
- Name:
Entry: 7
Data: 69|UnityEngine.SerializeField, UnityEngine.CoreModule
Data: 75|UnityEngine.SerializeField, UnityEngine.CoreModule
- Name:
Entry: 8
Data:
@@ -1160,13 +1268,13 @@ MonoBehaviour:
Data: AllPlayersCameraAnchor
- Name: $v
Entry: 7
Data: 70|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor
Data: 76|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor
- Name: <Name>k__BackingField
Entry: 1
Data: AllPlayersCameraAnchor
- Name: <UserType>k__BackingField
Entry: 9
Data: 47
Data: 53
- Name: <SystemType>k__BackingField
Entry: 9
Data: 4
@@ -1184,13 +1292,13 @@ MonoBehaviour:
Data: true
- Name: _fieldAttributes
Entry: 7
Data: 71|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib
Data: 77|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib
- Name:
Entry: 12
Data: 1
- Name:
Entry: 7
Data: 72|UnityEngine.SerializeField, UnityEngine.CoreModule
Data: 78|UnityEngine.SerializeField, UnityEngine.CoreModule
- Name:
Entry: 8
Data:
@@ -21,8 +21,10 @@ public class CameraControllerRound2 : CameraControllerBase
[Space]
[SerializeField] public CameraTimedSwitcher HostAllPlayersTimerToggle;
[SerializeField] public CameraTimedSwitcher HostPlayersAndWideShotTimerToggle;
[SerializeField] public CameraTimedSwitcher Player1AndWideShotTimerToggle;
[SerializeField] public CameraTimedSwitcher Player2AndWideShotTimerToggle;
[SerializeField] public CameraTimedSwitcher Player1AndLocationBoardTimerToggle;
[SerializeField] public CameraTimedSwitcher Player2AndLocationBoardTimerToggle;
[SerializeField] public CameraTimedSwitcher LocationBoardAndShortHostTimerToggle;
[SerializeField] public CameraTimedSwitcher LocationBoardAndLongHostTimerToggle;
[Space]
[SerializeField] public CameraAnchor Player1CameraAnchor;
[SerializeField] public CameraAnchor Player2CameraAnchor;
@@ -57,8 +59,10 @@ public class CameraControllerRound2 : CameraControllerBase
Networking.SetOwner(Player, HostAllPlayersTimerToggle.gameObject);
Networking.SetOwner(Player, HostPlayersAndWideShotTimerToggle.gameObject);
Networking.SetOwner(Player, Player1AndWideShotTimerToggle.gameObject);
Networking.SetOwner(Player, Player2AndWideShotTimerToggle.gameObject);
Networking.SetOwner(Player, Player1AndLocationBoardTimerToggle.gameObject);
Networking.SetOwner(Player, Player2AndLocationBoardTimerToggle.gameObject);
Networking.SetOwner(Player, LocationBoardAndShortHostTimerToggle.gameObject);
Networking.SetOwner(Player, LocationBoardAndLongHostTimerToggle.gameObject);
Networking.SetOwner(Player, Player1CameraAnchor.gameObject);
Networking.SetOwner(Player, Player2CameraAnchor.gameObject);
@@ -124,32 +128,60 @@ public class CameraControllerRound2 : CameraControllerBase
{
HostAllPlayersTimerToggle.Activate = true;
HostPlayersAndWideShotTimerToggle.Activate = false;
Player1AndWideShotTimerToggle.Activate = false;
Player2AndWideShotTimerToggle.Activate = false;
Player1AndLocationBoardTimerToggle.Activate = false;
Player2AndLocationBoardTimerToggle.Activate = false;
LocationBoardAndShortHostTimerToggle.Activate = false;
LocationBoardAndLongHostTimerToggle.Activate = false;
}
public void ActivateHostPlayersAndWideShotCameraSwitcher()
{
HostAllPlayersTimerToggle.Activate = false;
HostPlayersAndWideShotTimerToggle.Activate = true;
Player1AndWideShotTimerToggle.Activate = false;
Player2AndWideShotTimerToggle.Activate = false;
Player1AndLocationBoardTimerToggle.Activate = false;
Player2AndLocationBoardTimerToggle.Activate = false;
LocationBoardAndShortHostTimerToggle.Activate = false;
LocationBoardAndLongHostTimerToggle.Activate = false;
}
public void ActivatePlayer1AndWideShotCameraSwitcher()
public void ActivatePlayer1AndLocationBoardCameraSwitcher()
{
HostAllPlayersTimerToggle.Activate = false;
HostPlayersAndWideShotTimerToggle.Activate = false;
Player1AndWideShotTimerToggle.Activate = true;
Player2AndWideShotTimerToggle.Activate = false;
Player1AndLocationBoardTimerToggle.Activate = true;
Player2AndLocationBoardTimerToggle.Activate = false;
LocationBoardAndShortHostTimerToggle.Activate = false;
LocationBoardAndLongHostTimerToggle.Activate = false;
}
public void ActivatePlayer2AndWideShotCameraSwitcher()
public void ActivatePlayer2AndLocationBoardCameraSwitcher()
{
HostAllPlayersTimerToggle.Activate = false;
HostPlayersAndWideShotTimerToggle.Activate = false;
Player1AndWideShotTimerToggle.Activate = false;
Player2AndWideShotTimerToggle.Activate = true;
Player1AndLocationBoardTimerToggle.Activate = false;
Player2AndLocationBoardTimerToggle.Activate = true;
LocationBoardAndShortHostTimerToggle.Activate = false;
LocationBoardAndLongHostTimerToggle.Activate = false;
}
public void ActivateLocationBoardAndShortHostCameraSwitcher()
{
HostAllPlayersTimerToggle.Activate = false;
HostPlayersAndWideShotTimerToggle.Activate = false;
Player1AndLocationBoardTimerToggle.Activate = false;
Player2AndLocationBoardTimerToggle.Activate = false;
LocationBoardAndShortHostTimerToggle.Activate = true;
LocationBoardAndLongHostTimerToggle.Activate = false;
}
public void ActivateLocationBoardAndLongHostCameraSwitcher()
{
HostAllPlayersTimerToggle.Activate = false;
HostPlayersAndWideShotTimerToggle.Activate = false;
Player1AndLocationBoardTimerToggle.Activate = false;
Player2AndLocationBoardTimerToggle.Activate = false;
LocationBoardAndShortHostTimerToggle.Activate = false;
LocationBoardAndLongHostTimerToggle.Activate = true;
}
@@ -172,7 +204,9 @@ public class CameraControllerRound2 : CameraControllerBase
{
HostAllPlayersTimerToggle.Activate = false;
HostPlayersAndWideShotTimerToggle.Activate = false;
Player1AndWideShotTimerToggle.Activate = false;
Player2AndWideShotTimerToggle.Activate = false;
Player1AndLocationBoardTimerToggle.Activate = false;
Player2AndLocationBoardTimerToggle.Activate = false;
LocationBoardAndShortHostTimerToggle.Activate = false;
LocationBoardAndLongHostTimerToggle.Activate = false;
}
}
@@ -44,7 +44,7 @@ MonoBehaviour:
Data:
- Name:
Entry: 12
Data: 24
Data: 25
- Name:
Entry: 7
Data:
@@ -1250,25 +1250,19 @@ MonoBehaviour:
Data:
- Name: $k
Entry: 1
Data: COLOR_STANDARD
Data: _PanelToReveal_Cache
- Name: $v
Entry: 7
Data: 81|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor
- Name: <Name>k__BackingField
Entry: 1
Data: COLOR_STANDARD
Data: _PanelToReveal_Cache
- Name: <UserType>k__BackingField
Entry: 7
Data: 82|System.RuntimeType, mscorlib
- Name:
Entry: 1
Data: UnityEngine.Color, UnityEngine.CoreModule
- Name:
Entry: 8
Data:
Entry: 9
Data: 69
- Name: <SystemType>k__BackingField
Entry: 9
Data: 82
Data: 69
- Name: <SyncMode>k__BackingField
Entry: 7
Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib
@@ -1283,7 +1277,7 @@ MonoBehaviour:
Data: false
- Name: _fieldAttributes
Entry: 7
Data: 83|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib
Data: 82|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib
- Name:
Entry: 12
Data: 0
@@ -1304,19 +1298,25 @@ MonoBehaviour:
Data:
- Name: $k
Entry: 1
Data: COLOR_RED
Data: COLOR_STANDARD
- Name: $v
Entry: 7
Data: 84|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor
Data: 83|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor
- Name: <Name>k__BackingField
Entry: 1
Data: COLOR_RED
Data: COLOR_STANDARD
- Name: <UserType>k__BackingField
Entry: 9
Data: 82
Entry: 7
Data: 84|System.RuntimeType, mscorlib
- Name:
Entry: 1
Data: UnityEngine.Color, UnityEngine.CoreModule
- Name:
Entry: 8
Data:
- Name: <SystemType>k__BackingField
Entry: 9
Data: 82
Data: 84
- Name: <SyncMode>k__BackingField
Entry: 7
Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib
@@ -1352,19 +1352,19 @@ MonoBehaviour:
Data:
- Name: $k
Entry: 1
Data: COLOR_YELLOW
Data: COLOR_RED
- Name: $v
Entry: 7
Data: 86|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor
- Name: <Name>k__BackingField
Entry: 1
Data: COLOR_YELLOW
Data: COLOR_RED
- Name: <UserType>k__BackingField
Entry: 9
Data: 82
Data: 84
- Name: <SystemType>k__BackingField
Entry: 9
Data: 82
Data: 84
- Name: <SyncMode>k__BackingField
Entry: 7
Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib
@@ -1400,19 +1400,19 @@ MonoBehaviour:
Data:
- Name: $k
Entry: 1
Data: COLOR_GREEN
Data: COLOR_YELLOW
- Name: $v
Entry: 7
Data: 88|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor
- Name: <Name>k__BackingField
Entry: 1
Data: COLOR_GREEN
Data: COLOR_YELLOW
- Name: <UserType>k__BackingField
Entry: 9
Data: 82
Data: 84
- Name: <SystemType>k__BackingField
Entry: 9
Data: 82
Data: 84
- Name: <SyncMode>k__BackingField
Entry: 7
Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib
@@ -1443,6 +1443,54 @@ MonoBehaviour:
- Name:
Entry: 8
Data:
- Name:
Entry: 7
Data:
- Name: $k
Entry: 1
Data: COLOR_GREEN
- Name: $v
Entry: 7
Data: 90|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor
- Name: <Name>k__BackingField
Entry: 1
Data: COLOR_GREEN
- Name: <UserType>k__BackingField
Entry: 9
Data: 84
- Name: <SystemType>k__BackingField
Entry: 9
Data: 84
- Name: <SyncMode>k__BackingField
Entry: 7
Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib
- Name:
Entry: 6
Data:
- Name:
Entry: 8
Data:
- Name: <IsSerialized>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
- Name:
Entry: 13
Data:
- Name:
Entry: 8
Data:
- Name:
Entry: 8
Data:
- Name:
Entry: 8
Data:
- Name:
Entry: 13
Data:
@@ -38,6 +38,8 @@ public class GameManagerRound2 : GameManagerBase
private CameraControllerRound2 _CameraControllerRound2 = null;
private int _PanelToReveal_Cache = -1;
private readonly Color COLOR_STANDARD = new Color(0.78431f, 0.78431f, 0.78431f);
private readonly Color COLOR_RED = new Color(0.78431f, 0.0f, 0.0f);
private readonly Color COLOR_YELLOW = new Color(0.78431f, 0.78431f, 0.0f);
@@ -206,7 +208,7 @@ public class GameManagerRound2 : GameManagerBase
_JailPlayer.VideoIndex = (int)_CaseManager.GetCrook();
_CameraControllerRound2.ActivatePlayer1AndWideShotCameraSwitcher();
SwitchToCurrentPlayerAndLocationBoardSwitcher();
NetworkCalling.SendCustomNetworkEvent((IUdonEventReceiver)_AudioManager, NetworkEventTarget.All,
"PlayMusicLoop", MusicEventType.RecoverTheLoot);
@@ -217,6 +219,8 @@ public class GameManagerRound2 : GameManagerBase
HostCardRecoverTheLootInterface Interface =
(HostCardRecoverTheLootInterface)GetHostCardInterface(RoundSegmentType.RecoverTheLoot);
Interface.SetComment("On the right track. You get a free turn.", COLOR_GREEN);
_CameraControllerRound2.ActivateLocationBoardAndShortHostCameraSwitcher();
}
public void AlmostThere()
@@ -224,6 +228,8 @@ public class GameManagerRound2 : GameManagerBase
HostCardRecoverTheLootInterface Interface =
(HostCardRecoverTheLootInterface)GetHostCardInterface(RoundSegmentType.RecoverTheLoot);
Interface.SetComment("Almost got it. Another free turn.", COLOR_YELLOW);
_CameraControllerRound2.ActivateLocationBoardAndShortHostCameraSwitcher();
}
public void OutOfOrder(PanelType Type)
@@ -246,6 +252,8 @@ public class GameManagerRound2 : GameManagerBase
}
Interface.SetComment("Found " + PanelToken + ". Remember the order: loot, warrant, crook. Use some strategy.", COLOR_YELLOW);
_CameraControllerRound2.ActivateLocationBoardAndLongHostCameraSwitcher();
}
// All of these next functions are the end of a turn, and should disable
@@ -294,6 +302,8 @@ public class GameManagerRound2 : GameManagerBase
NetworkCalling.SendCustomNetworkEvent((IUdonEventReceiver)_AudioManager, NetworkEventTarget.All,
"StopMusic");
_CameraControllerRound2.DisableAllSwitchers();
AdvanceRound();
}
@@ -311,17 +321,7 @@ public class GameManagerRound2 : GameManagerBase
_JailChain.Show = true;
_CameraControllerRound2.DisableAllSwitchers();
switch (_CurrentPlayerCounter % 2)
{
case 0:
_CameraControllerRound2.SwitchToPlayer1Camera();
break;
case 1:
_CameraControllerRound2.SwitchToPlayer2Camera();
break;
}
SwitchToCurrentPlayerCamera();
EnableInteraction("Phone Call");
}
@@ -375,6 +375,8 @@ public class GameManagerRound2 : GameManagerBase
HostCardRecoverTheLootInterface Interface =
(HostCardRecoverTheLootInterface)GetHostCardInterface(RoundSegmentType.RecoverTheLoot);
Interface.EnableAllPanelButtons(true);
SwitchToCurrentPlayerAndLocationBoardSwitcher();
}
@@ -429,12 +431,25 @@ public class GameManagerRound2 : GameManagerBase
public void Button_RevealPanel(int Panel)
{
if (_PanelToReveal_Cache >= 0)
{
return;
}
((HostCardRecoverTheLootInterface)GetHostCardInterface(RoundSegmentType.RecoverTheLoot))
.DisablePanelButton(Panel);
_LocationBoard.RevealPanel(Panel);
_PanelToReveal_Cache = Panel;
_CameraControllerRound2.DisableAllSwitchers();
_CameraControllerRound2.SwitchToLocationBoardCamera();
SendCustomEventDelayedSeconds(nameof(_RevealLocationBoardPanel_Private), 0.33333333333333f);
}
public void _RevealLocationBoardPanel_Private()
{
_LocationBoard.RevealPanel(_PanelToReveal_Cache);
_PanelToReveal_Cache = -1;
}
[NetworkCallable]
@@ -478,6 +493,35 @@ public class GameManagerRound2 : GameManagerBase
public void Button_RevealPanel15() { Button_RevealPanel(15); }
public void SwitchToCurrentPlayerAndLocationBoardSwitcher()
{
switch (_CurrentPlayerCounter % 2)
{
case 0:
_CameraControllerRound2.ActivatePlayer1AndLocationBoardCameraSwitcher();
break;
case 1:
_CameraControllerRound2.ActivatePlayer2AndLocationBoardCameraSwitcher();
break;
}
}
public void SwitchToCurrentPlayerCamera()
{
_CameraControllerRound2.DisableAllSwitchers();
switch (_CurrentPlayerCounter % 2)
{
case 0:
_CameraControllerRound2.SwitchToPlayer1Camera();
break;
case 1:
_CameraControllerRound2.SwitchToPlayer2Camera();
break;
}
}
private string PanelTypeToString(PanelType Type)
{
switch(Type)