- Improved camera switching code to allow for more versatile camera direction.

- Added additional camera layouts for round 2 and 3.
This commit is contained in:
Jamie Greunbaum 2025-12-20 23:19:19 -05:00
parent 08897ba99f
commit 82606881b3
29 changed files with 1294 additions and 420 deletions

View File

@ -593,6 +593,7 @@ MonoBehaviour:
currentlyHeldBy: {fileID: 0}
pickupable: 1
proximity: 0.1
version: 0
--- !u!20 &5542997801820577511
Camera:
m_ObjectHideFlags: 0

File diff suppressed because it is too large Load Diff

View File

@ -116,19 +116,19 @@ MonoBehaviour:
Data:
- Name: $k
Entry: 1
Data: _SwitchToCamera
Data: _SwitchFunction
- Name: $v
Entry: 7
Data: 7|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor
- Name: <Name>k__BackingField
Entry: 1
Data: _SwitchToCamera
Data: _SwitchFunction
- Name: <UserType>k__BackingField
Entry: 7
Data: 8|System.RuntimeType, mscorlib
- Name:
Entry: 1
Data: UnityEngine.Camera, UnityEngine.CoreModule
Data: System.String, mscorlib
- Name:
Entry: 8
Data:

View File

@ -10,14 +10,14 @@ using VRC.Udon.Common.Interfaces;
public class CameraSwitchTrigger : UdonSharpBehaviour
{
[SerializeField] private CameraControllerBase _CameraController;
[SerializeField] private Camera _SwitchToCamera;
[SerializeField] private string _SwitchFunction;
public override void OnPlayerTriggerEnter(VRCPlayerApi Player)
{
if (Networking.GetOwner(_CameraController.gameObject) == Networking.LocalPlayer)
{
_CameraController.SwitchToLiveCamera(_SwitchToCamera);
_CameraController.SendCustomEvent(_SwitchFunction);
}
base.OnPlayerTriggerEnter(Player);

View File

@ -116,19 +116,19 @@ MonoBehaviour:
Data:
- Name: $k
Entry: 1
Data: _Cameras
Data: _SwitchFunctions
- Name: $v
Entry: 7
Data: 7|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor
- Name: <Name>k__BackingField
Entry: 1
Data: _Cameras
Data: _SwitchFunctions
- Name: <UserType>k__BackingField
Entry: 7
Data: 8|System.RuntimeType, mscorlib
- Name:
Entry: 1
Data: UnityEngine.Camera[], UnityEngine.CoreModule
Data: System.String[], mscorlib
- Name:
Entry: 8
Data:

View File

@ -11,7 +11,7 @@ using VRC.Udon;
public class CameraTimedSwitcher : UdonSharpBehaviour
{
[SerializeField] private CameraControllerBase _CameraController;
[SerializeField] private Camera[] _Cameras;
[SerializeField] private string[] _SwitchFunctions;
[SerializeField] private float _TimeBetweenCuts = 5.0f;
@ -24,8 +24,8 @@ public class CameraTimedSwitcher : UdonSharpBehaviour
{
if (_Active)
{
_CameraController.SwitchToLiveCamera(_Cameras[_NextCameraIndex]);
_NextCameraIndex = (_NextCameraIndex + 1) % _Cameras.Length;
_CameraController.SendCustomEvent(_SwitchFunctions[_NextCameraIndex]);
_NextCameraIndex = (_NextCameraIndex + 1) % _SwitchFunctions.Length;
SendCustomEventDelayedSeconds(nameof(SwitchToNextCamera), _TimeBetweenCuts);
}

View File

@ -79,31 +79,26 @@ public class CameraControllerRound1 : CameraControllerBase
public void SwitchToPlayer1Camera()
{
DisableAllSwitchers();
SwitchToLiveCamera(Player1Camera);
}
public void SwitchToPlayer2Camera()
{
DisableAllSwitchers();
SwitchToLiveCamera(Player2Camera);
}
public void SwitchToPlayer3Camera()
{
DisableAllSwitchers();
SwitchToLiveCamera(Player3Camera);
}
public void SwitchToHostCamera()
{
DisableAllSwitchers();
SwitchToLiveCamera(HostCamera);
}
public void SwitchToVideoPlayerCamera()
{
DisableAllSwitchers();
SwitchToLiveCamera(VideoPlayerCamera);
}
@ -114,7 +109,6 @@ public class CameraControllerRound1 : CameraControllerBase
}
public void SwitchToWideShotCamera()
{
DisableAllSwitchers();
ActivateWideShotCamera();
SwitchToLiveCamera(PrimaryFocusCamera);
}
@ -125,7 +119,6 @@ public class CameraControllerRound1 : CameraControllerBase
}
public void SwitchToVideoMusicClueCamera()
{
DisableAllSwitchers();
ActivateVideoMusicClueCamera();
SwitchToLiveCamera(PrimaryFocusCamera);
}
@ -136,7 +129,6 @@ public class CameraControllerRound1 : CameraControllerBase
}
public void SwitchToACMECrimenetComputerCamera()
{
DisableAllSwitchers();
ActivateACMECrimenetComputerCamera();
SwitchToLiveCamera(PrimaryFocusCamera);
}
@ -147,7 +139,6 @@ public class CameraControllerRound1 : CameraControllerBase
}
public void SwitchToFilingCabinetCamera()
{
DisableAllSwitchers();
ActivateFilingCabinetCamera();
SwitchToLiveCamera(PrimaryFocusCamera);
}
@ -158,7 +149,6 @@ public class CameraControllerRound1 : CameraControllerBase
}
public void SwitchToAllPlayersCamera()
{
DisableAllSwitchers();
ActivateAllPlayersCamera();
SwitchToLiveCamera(PrimaryFocusCamera);
}
@ -169,7 +159,6 @@ public class CameraControllerRound1 : CameraControllerBase
}
public void SwitchToModemCamera()
{
DisableAllSwitchers();
ActivateModemCamera();
SwitchToLiveCamera(PrimaryFocusCamera);
}

View File

@ -44,7 +44,7 @@ MonoBehaviour:
Data:
- Name:
Entry: 12
Data: 12
Data: 18
- Name:
Entry: 7
Data:
@ -455,19 +455,19 @@ MonoBehaviour:
Data:
- Name: $k
Entry: 1
Data: Player1CameraAnchor
Data: HostAndAllPlayersCameraTrigger
- Name: $v
Entry: 7
Data: 27|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor
- Name: <Name>k__BackingField
Entry: 1
Data: Player1CameraAnchor
Data: HostAndAllPlayersCameraTrigger
- Name: <UserType>k__BackingField
Entry: 7
Data: 28|System.RuntimeType, mscorlib
- Name:
Entry: 1
Data: CameraAnchor, Assembly-CSharp
Data: CameraTimerSwitchTrigger, Assembly-CSharp
- Name:
Entry: 8
Data:
@ -491,7 +491,7 @@ MonoBehaviour:
Data: 29|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib
- Name:
Entry: 12
Data: 4
Data: 2
- Name:
Entry: 7
Data: 30|UnityEngine.SpaceAttribute, UnityEngine.CoreModule
@ -503,25 +503,7 @@ MonoBehaviour:
Data:
- Name:
Entry: 7
Data: 31|UnityEngine.SpaceAttribute, UnityEngine.CoreModule
- Name: height
Entry: 4
Data: 8
- Name:
Entry: 8
Data:
- Name:
Entry: 7
Data: 32|UnityEngine.SpaceAttribute, UnityEngine.CoreModule
- Name: height
Entry: 4
Data: 8
- Name:
Entry: 8
Data:
- Name:
Entry: 7
Data: 33|UnityEngine.SerializeField, UnityEngine.CoreModule
Data: 31|UnityEngine.SerializeField, UnityEngine.CoreModule
- Name:
Entry: 8
Data:
@ -542,16 +524,22 @@ MonoBehaviour:
Data:
- Name: $k
Entry: 1
Data: Player2CameraAnchor
Data: HostAllPlayersTimerToggle
- Name: $v
Entry: 7
Data: 34|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor
Data: 32|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor
- Name: <Name>k__BackingField
Entry: 1
Data: Player2CameraAnchor
Data: HostAllPlayersTimerToggle
- Name: <UserType>k__BackingField
Entry: 9
Data: 28
Entry: 7
Data: 33|System.RuntimeType, mscorlib
- Name:
Entry: 1
Data: CameraTimedSwitcher, Assembly-CSharp
- Name:
Entry: 8
Data:
- Name: <SystemType>k__BackingField
Entry: 9
Data: 4
@ -569,10 +557,19 @@ MonoBehaviour:
Data: true
- Name: _fieldAttributes
Entry: 7
Data: 35|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib
Data: 34|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib
- Name:
Entry: 12
Data: 1
Data: 2
- Name:
Entry: 7
Data: 35|UnityEngine.SpaceAttribute, UnityEngine.CoreModule
- Name: height
Entry: 4
Data: 8
- Name:
Entry: 8
Data:
- Name:
Entry: 7
Data: 36|UnityEngine.SerializeField, UnityEngine.CoreModule
@ -596,16 +593,16 @@ MonoBehaviour:
Data:
- Name: $k
Entry: 1
Data: HostAndWinnerCameraAnchor
Data: HostPlayersAndWideShotTimerToggle
- Name: $v
Entry: 7
Data: 37|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor
- Name: <Name>k__BackingField
Entry: 1
Data: HostAndWinnerCameraAnchor
Data: HostPlayersAndWideShotTimerToggle
- Name: <UserType>k__BackingField
Entry: 9
Data: 28
Data: 33
- Name: <SystemType>k__BackingField
Entry: 9
Data: 4
@ -650,16 +647,22 @@ MonoBehaviour:
Data:
- Name: $k
Entry: 1
Data: LocationBoardCameraAnchor
Data: Player1CameraAnchor
- Name: $v
Entry: 7
Data: 40|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor
- Name: <Name>k__BackingField
Entry: 1
Data: LocationBoardCameraAnchor
Data: Player1CameraAnchor
- Name: <UserType>k__BackingField
Entry: 9
Data: 28
Entry: 7
Data: 41|System.RuntimeType, mscorlib
- Name:
Entry: 1
Data: CameraAnchor, Assembly-CSharp
- Name:
Entry: 8
Data:
- Name: <SystemType>k__BackingField
Entry: 9
Data: 4
@ -677,13 +680,238 @@ MonoBehaviour:
Data: true
- Name: _fieldAttributes
Entry: 7
Data: 41|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib
Data: 42|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib
- Name:
Entry: 12
Data: 2
- Name:
Entry: 7
Data: 43|UnityEngine.SpaceAttribute, UnityEngine.CoreModule
- Name: height
Entry: 4
Data: 8
- Name:
Entry: 8
Data:
- Name:
Entry: 7
Data: 44|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: 45|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor
- Name: <Name>k__BackingField
Entry: 1
Data: Player2CameraAnchor
- Name: <UserType>k__BackingField
Entry: 9
Data: 41
- 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: 46|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib
- Name:
Entry: 12
Data: 1
- Name:
Entry: 7
Data: 42|UnityEngine.SerializeField, UnityEngine.CoreModule
Data: 47|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: 48|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor
- Name: <Name>k__BackingField
Entry: 1
Data: HostAndWinnerCameraAnchor
- Name: <UserType>k__BackingField
Entry: 9
Data: 41
- 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: 49|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib
- Name:
Entry: 12
Data: 1
- 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: LocationBoardCameraAnchor
- Name: $v
Entry: 7
Data: 51|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor
- Name: <Name>k__BackingField
Entry: 1
Data: LocationBoardCameraAnchor
- Name: <UserType>k__BackingField
Entry: 9
Data: 41
- 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: ModemCameraAnchor
- Name: $v
Entry: 7
Data: 54|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor
- Name: <Name>k__BackingField
Entry: 1
Data: ModemCameraAnchor
- Name: <UserType>k__BackingField
Entry: 9
Data: 41
- 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
- Name:
Entry: 8
Data:
@ -707,13 +935,13 @@ MonoBehaviour:
Data: VideoPlayerCameraAnchor
- Name: $v
Entry: 7
Data: 43|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor
Data: 57|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor
- Name: <Name>k__BackingField
Entry: 1
Data: VideoPlayerCameraAnchor
- Name: <UserType>k__BackingField
Entry: 9
Data: 28
Data: 41
- Name: <SystemType>k__BackingField
Entry: 9
Data: 4
@ -731,13 +959,130 @@ MonoBehaviour:
Data: true
- Name: _fieldAttributes
Entry: 7
Data: 44|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib
Data: 58|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib
- Name:
Entry: 12
Data: 1
- Name:
Entry: 7
Data: 45|UnityEngine.SerializeField, UnityEngine.CoreModule
Data: 59|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: 60|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor
- Name: <Name>k__BackingField
Entry: 1
Data: WideShotCameraAnchor
- Name: <UserType>k__BackingField
Entry: 9
Data: 41
- 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: 61|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib
- Name:
Entry: 12
Data: 2
- Name:
Entry: 7
Data: 62|UnityEngine.SpaceAttribute, UnityEngine.CoreModule
- Name: height
Entry: 4
Data: 8
- Name:
Entry: 8
Data:
- Name:
Entry: 7
Data: 63|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: AllPlayersCameraAnchor
- Name: $v
Entry: 7
Data: 64|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor
- Name: <Name>k__BackingField
Entry: 1
Data: AllPlayersCameraAnchor
- Name: <UserType>k__BackingField
Entry: 9
Data: 41
- 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: 65|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib
- Name:
Entry: 12
Data: 1
- Name:
Entry: 7
Data: 66|UnityEngine.SerializeField, UnityEngine.CoreModule
- Name:
Entry: 8
Data:

View File

@ -17,16 +17,20 @@ public class CameraControllerRound2 : CameraControllerBase
[SerializeField] public Camera PrimaryFocusCamera;
[SerializeField] public Camera VideoPlayerCamera;
[Space]
//[SerializeField] public CameraTimerSwitchTrigger HostCameraTrigger;
[SerializeField] public CameraTimerSwitchTrigger HostAndAllPlayersCameraTrigger;
[Space]
//[SerializeField] public CameraTimedSwitcher HostAndAllPlayersTimerToggle;
//[SerializeField] public CameraTimedSwitcher HostAndIndividualPlayersTimerToggle;
[SerializeField] public CameraTimedSwitcher HostAllPlayersTimerToggle;
[SerializeField] public CameraTimedSwitcher HostPlayersAndWideShotTimerToggle;
[Space]
[SerializeField] public CameraAnchor Player1CameraAnchor;
[SerializeField] public CameraAnchor Player2CameraAnchor;
[SerializeField] public CameraAnchor HostAndWinnerCameraAnchor;
[SerializeField] public CameraAnchor LocationBoardCameraAnchor;
[SerializeField] public CameraAnchor ModemCameraAnchor;
[SerializeField] public CameraAnchor VideoPlayerCameraAnchor;
[Space]
[SerializeField] public CameraAnchor WideShotCameraAnchor;
[SerializeField] public CameraAnchor AllPlayersCameraAnchor;
public override void InitialiseCameras()
@ -47,79 +51,99 @@ public class CameraControllerRound2 : CameraControllerBase
Networking.SetOwner(Player, PrimaryFocusCamera.gameObject);
Networking.SetOwner(Player, VideoPlayerCamera.gameObject);
Networking.SetOwner(Player, HostAndAllPlayersCameraTrigger.gameObject);
Networking.SetOwner(Player, HostAllPlayersTimerToggle.gameObject);
Networking.SetOwner(Player, HostPlayersAndWideShotTimerToggle.gameObject);
Networking.SetOwner(Player, Player1CameraAnchor.gameObject);
Networking.SetOwner(Player, Player2CameraAnchor.gameObject);
Networking.SetOwner(Player, HostAndWinnerCameraAnchor.gameObject);
Networking.SetOwner(Player, LocationBoardCameraAnchor.gameObject);
Networking.SetOwner(Player, VideoPlayerCameraAnchor.gameObject);
Networking.SetOwner(Player, WideShotCameraAnchor.gameObject);
Networking.SetOwner(Player, AllPlayersCameraAnchor.gameObject);
base.OnOwnershipTransferred(Player);
}
public void SwitchToPlayer1Camera()
{
DisableAllSwitchers();
SwitchToLiveCamera(Player1Camera);
}
public void SwitchToPlayer2Camera()
{
DisableAllSwitchers();
SwitchToLiveCamera(Player2Camera);
}
public void SwitchToHostAndWinnerCamera()
{
DisableAllSwitchers();
SwitchToLiveCamera(HostAndWinnerCamera);
}
public void SwitchToVideoPlayerCamera()
{
DisableAllSwitchers();
SwitchToLiveCamera(VideoPlayerCamera);
}
public void ActivateWideShotCamera()
{
//DefaultWideShotCameraAnchor.AttachCamera(PrimaryFocusCamera);
WideShotCameraAnchor.AttachCamera(PrimaryFocusCamera);
}
public void SwitchToWideShotCamera()
{
//DisableAllSwitchers();
//ActivateWideShotCamera();
//SwitchToLiveCamera(PrimaryFocusCamera);
ActivateWideShotCamera();
SwitchToLiveCamera(PrimaryFocusCamera);
}
public void ActivateAllPlayersCamera()
{
AllPlayersCameraAnchor.AttachCamera(PrimaryFocusCamera);
}
public void SwitchToAllPlayersCamera()
{
ActivateAllPlayersCamera();
SwitchToLiveCamera(PrimaryFocusCamera);
}
public void ActivateHostAllPlayersCameraSwitcher()
{
//ActivateAllPlayersCamera();
//HostAndIndividualPlayersTimerToggle.Activate = false;
//HostAndAllPlayersTimerToggle.Activate = true;
ActivateAllPlayersCamera();
HostAllPlayersTimerToggle.Activate = true;
HostPlayersAndWideShotTimerToggle.Activate = false;
}
public void ActivateHostPlayersAndWideShotCameraSwitcher()
{
ActivateWideShotCamera();
HostAllPlayersTimerToggle.Activate = false;
HostPlayersAndWideShotTimerToggle.Activate = true;
}
public void ActivateHostCameraTrigger()
public void ActivateHostAllPlayersCameraTrigger()
{
//HostCameraTrigger.gameObject.SetActive(true);
HostAndAllPlayersCameraTrigger.gameObject.SetActive(true);
}
public void DeactivateHostCameraTrigger()
public void DeactivateHostAllPlayersCameraTrigger()
{
//HostCameraTrigger.gameObject.SetActive(false);
HostAndAllPlayersCameraTrigger.gameObject.SetActive(false);
}
public override void DisableAllTriggers()
{
//HostCameraTrigger.gameObject.SetActive(false);
HostAndAllPlayersCameraTrigger.gameObject.SetActive(false);
}
public override void DisableAllSwitchers()
{
//HostAndAllPlayersTimerToggle.Activate = false;
//HostAndIndividualPlayersTimerToggle.Activate = false;
HostAllPlayersTimerToggle.Activate = false;
HostPlayersAndWideShotTimerToggle.Activate = false;
}
}

View File

@ -92,31 +92,26 @@ public class CameraControllerRound3 : CameraControllerBase
public void SwitchToPlayerCamera()
{
DisableAllSwitchers();
SwitchToLiveCamera(PlayerCamera);
}
public void SwitchToHostCamera()
{
DisableAllSwitchers();
SwitchToLiveCamera(HostCamera);
}
public void SwitchToOverheadCamera()
{
DisableAllSwitchers();
SwitchToLiveCamera(OverheadCamera);
}
public void SwitchToFrontCamera()
{
DisableAllSwitchers();
SwitchToLiveCamera(FrontCamera);
}
public void SwitchToVideoPlayerCamera()
{
DisableAllSwitchers();
SwitchToLiveCamera(VideoPlayerCamera);
}
@ -146,14 +141,6 @@ public class CameraControllerRound3 : CameraControllerBase
}
public void ChangeMarkerCameraPosition()
{
HostCameraAnchorSequence[MarkerCameraAnchorPosition].AttachCamera(HostCamera);
PlayerCameraAnchorSequence[MarkerCameraAnchorPosition].AttachCamera(PlayerCamera);
RequestSerialization();
}
public void PlayIFeelGood(bool Play)
{
PlayIFeelGoodCallback = Play;
@ -193,10 +180,16 @@ public class CameraControllerRound3 : CameraControllerBase
set
{
_MarkerCameraAnchorPosition = value;
ChangeMarkerCameraPosition();
_ChangeMarkerCameraPosition();
}
get => _MarkerCameraAnchorPosition;
}
private void _ChangeMarkerCameraPosition()
{
HostCameraAnchorSequence[MarkerCameraAnchorPosition].AttachCamera(HostCamera);
PlayerCameraAnchorSequence[MarkerCameraAnchorPosition].AttachCamera(PlayerCamera);
RequestSerialization();
}
private bool PlayIFeelGoodCallback
{

View File

@ -169,6 +169,7 @@ public class GameManagerRound1 : GameManagerBase
private void PlayIntroVideo()
{
_CameraControllerRound1.DeactivateHostCameraTrigger();
_CameraControllerRound1.DisableAllSwitchers();
_CameraControllerRound1.SwitchToHostCamera();
_AudioManager.SendCustomNetworkEvent(NetworkEventTarget.All, "FadeOutMusic");
@ -313,6 +314,7 @@ public class GameManagerRound1 : GameManagerBase
{
case 0:
{
_CameraControllerRound1.DisableAllSwitchers();
_CameraControllerRound1.SwitchToVideoMusicClueCamera();
_AudioManager.SendCustomNetworkEvent(NetworkEventTarget.All, "PlaySFX", SFXEventType.VideoMusicClue);
@ -540,6 +542,7 @@ public class GameManagerRound1 : GameManagerBase
_QuestionCorrectResponse = (int)_CurrentQuestion["Correct Response"].Number;
_CameraControllerRound1.DisableAllSwitchers();
_CameraControllerRound1.SwitchToVideoPlayerCamera();
EnableInteraction("Reveal Choice 1");
@ -557,6 +560,7 @@ public class GameManagerRound1 : GameManagerBase
_AudioManager.SendCustomNetworkEvent(NetworkEventTarget.All,
"PlaySFXAtPitch", SFXEventType.Ding, AudioManager.As5);
_CameraControllerRound1.DisableAllSwitchers();
_CameraControllerRound1.SwitchToVideoPlayerCamera();
EnableInteraction("Reveal Choice 2");
@ -574,6 +578,7 @@ public class GameManagerRound1 : GameManagerBase
_AudioManager.SendCustomNetworkEvent(NetworkEventTarget.All,
"PlaySFXAtPitch", SFXEventType.Ding, AudioManager.C6);
_CameraControllerRound1.DisableAllSwitchers();
_CameraControllerRound1.SwitchToVideoPlayerCamera();
EnableInteraction("Reveal Choice 3");
@ -619,10 +624,11 @@ public class GameManagerRound1 : GameManagerBase
_AudioManager.SendCustomNetworkEvent(NetworkEventTarget.All,
"PlaySFXAtPitch", SFXEventType.Ding, AudioManager.D6);
_CameraControllerRound1.DisableAllSwitchers();
_CameraControllerRound1.SwitchToVideoPlayerCamera();
_CameraControllerRound1.SendCustomEventDelayedSeconds("ActivateHostAllPlayersCameraSwitcher", 2.0f);
EnableInteraction("Lock Answers");
EnableInteraction("Get Player 1's Response");
}
private void MultipleChoiceLockAnswers()
@ -650,46 +656,40 @@ public class GameManagerRound1 : GameManagerBase
}
}
EnableInteraction("Focus On Player 1");
EnableInteraction("Get Player 1's Response");
}
private void MultipleChoiceFocusOnPlayer1()
private void MultipleChoiceFocusOnPlayer(int PlayerNumber)
{
for (int i = 0; i < _PlayerPodiums.Length; i++)
{
_PlayerPodiums[i].SendCustomNetworkEvent(NetworkEventTarget.All, "LockInChoice");
_PlayerPodiums[i].SendCustomNetworkEvent(NetworkEventTarget.Owner, "ShowAuxiliaryMapScreen", false);
}
HostCardBetweenRoundsInterface Interface =
(HostCardBetweenRoundsInterface)GetHostCardInterface(RoundSegmentType.BetweenSegments);
Interface.CommentUI.text = "What did you pick?";
for (int i = 0; i < _PlayerPodiums.Length; i++)
{
_PlayerPodiums[i].HighlightPodium(false);
}
_PlayerPodiums[0].HighlightPodium(true);
int PlayerIndex = PlayerNumber - 1;
_PlayerPodiums[PlayerIndex].HighlightPodium(true);
Interface.HeaderUI.text = _PlayerPodiums[PlayerIndex].PlayerName;
_CameraControllerRound1.SwitchToPlayer1Camera();
_CameraControllerRound1.DisableAllSwitchers();
_CameraControllerRound1.SendCustomEvent("SwitchToPlayer" + PlayerNumber + "Camera");
EnableInteraction("Focus On Player 2");
}
private void MultipleChoiceFocusOnPlayer2()
{
for (int i = 0; i < _PlayerPodiums.Length; i++)
if (PlayerNumber < _PlayerPodiums.Length)
{
_PlayerPodiums[i].HighlightPodium(false);
EnableInteraction("Get Player " + (PlayerNumber + 1) + "'s Response");
}
_PlayerPodiums[1].HighlightPodium(true);
_CameraControllerRound1.SwitchToPlayer2Camera();
EnableInteraction("Focus On Player 3");
}
private void MultipleChoiceFocusOnPlayer3()
{
for (int i = 0; i < _PlayerPodiums.Length; i++)
else
{
_PlayerPodiums[i].HighlightPodium(false);
EnableInteraction("Reveal Correct Answer");
}
_PlayerPodiums[2].HighlightPodium(true);
_CameraControllerRound1.SwitchToPlayer3Camera();
EnableInteraction("Reveal Answers And Assign Points");
}
private void MultipleChoiceRevealAnswersAndAssignPoints()
@ -725,6 +725,7 @@ public class GameManagerRound1 : GameManagerBase
_VideoPlayer.FlashCorrectAnswer = true;
_CameraControllerRound1.DisableAllSwitchers();
_CameraControllerRound1.SwitchToVideoPlayerCamera();
EnableInteraction("Next Question");
@ -733,6 +734,7 @@ public class GameManagerRound1 : GameManagerBase
private void BeginLightningRound()
{
_CameraControllerRound1.DisableAllSwitchers();
_CameraControllerRound1.SwitchToWideShotCamera();
SendCustomNetworkEvent(NetworkEventTarget.All, nameof(PlayLightningRoundAnimation));
_CameraControllerRound1.SendCustomEventDelayedSeconds("ActivateHostAllPlayersCameraSwitcher", 3.0f);
@ -885,6 +887,7 @@ public class GameManagerRound1 : GameManagerBase
private void PlayTheChaseMusic()
{
_CameraControllerRound1.DisableAllSwitchers();
_CameraControllerRound1.SwitchToWideShotCamera();
_CameraControllerRound1.SendCustomEventDelayedSeconds("ActivateHostAllPlayersCameraSwitcher", 5.0f);
@ -947,6 +950,7 @@ public class GameManagerRound1 : GameManagerBase
{
_VideoPlayer.SubMapIndex = _QuestionSubstage * 2;
_CameraControllerRound1.DisableAllSwitchers();
_CameraControllerRound1.SwitchToVideoPlayerCamera();
}
@ -979,6 +983,7 @@ public class GameManagerRound1 : GameManagerBase
}
public void TheChaseEndClue()
{
_CameraControllerRound1.DisableAllSwitchers();
_CameraControllerRound1.SwitchToVideoPlayerCamera();
_AudioManager.SendCustomNetworkEvent(NetworkEventTarget.All,
@ -1015,8 +1020,7 @@ public class GameManagerRound1 : GameManagerBase
"- Now it's time for the final clue of this round, which means you have to decide how many of your ACME Crimebucks you want to risk.\n" +
"- If you're right, we'll add that amount to your score.\n" +
"- If you're not right, we'll subtract that amount from your score.\n" +
"- You can risk 0, 10, 20, 30, 40, or 50 ACME Crimebucks.\n\n" +
"- Choose how much to risk by placing your wager to the other side of your podium.";
"- You can risk 0, 10, 20, 30, 40, or 50 ACME Crimebucks.";
LoadMapsIntoQueue();
@ -1055,6 +1059,7 @@ public class GameManagerRound1 : GameManagerBase
"PlayMusic", MusicEventType.ThinkAboutIt);
SendCustomEventDelayedSeconds(nameof(ThinkAboutItCountdownFinished), 15.0f);
_CameraControllerRound1.DisableAllSwitchers();
_CameraControllerRound1.SendCustomEventDelayedSeconds("SwitchToVideoPlayerCamera", 2.0f);
_CameraControllerRound1.SendCustomEventDelayedSeconds("SwitchToPlayer1Camera", 4.5f);
_CameraControllerRound1.SendCustomEventDelayedSeconds("SwitchToPlayer2Camera", 7.0f);
@ -1117,6 +1122,7 @@ public class GameManagerRound1 : GameManagerBase
_AudioManager.SendCustomNetworkEvent(NetworkEventTarget.All,
"PlaySFXAtPitch", SFXEventType.Ding, AudioManager.As5);
_CameraControllerRound1.DisableAllSwitchers();
_CameraControllerRound1.SwitchToVideoPlayerCamera();
EnableInteraction("Reveal Choice 2");
@ -1132,6 +1138,7 @@ public class GameManagerRound1 : GameManagerBase
_AudioManager.SendCustomNetworkEvent(NetworkEventTarget.All,
"PlaySFXAtPitch", SFXEventType.Ding, AudioManager.C6);
_CameraControllerRound1.DisableAllSwitchers();
_CameraControllerRound1.SwitchToVideoPlayerCamera();
EnableInteraction("Reveal Choice 3");
@ -1176,6 +1183,7 @@ public class GameManagerRound1 : GameManagerBase
_AudioManager.SendCustomNetworkEvent(NetworkEventTarget.All,
"PlaySFXAtPitch", SFXEventType.Ding, AudioManager.D6);
_CameraControllerRound1.DisableAllSwitchers();
_CameraControllerRound1.SwitchToVideoPlayerCamera();
_CameraControllerRound1.SendCustomEventDelayedSeconds("ActivateHostAllPlayersCameraSwitcher", 2.0f);
@ -1242,6 +1250,7 @@ public class GameManagerRound1 : GameManagerBase
{
int PlayerNumber = _FinalRoundPlayersSortedByScore[PlayerPlace - 1];
_CameraControllerRound1.DisableAllSwitchers();
_CameraControllerRound1.SendCustomEvent("SwitchToPlayer" + PlayerNumber + "Camera");
HostCardBetweenRoundsInterface Interface =
@ -1274,6 +1283,7 @@ public class GameManagerRound1 : GameManagerBase
EnableInteraction("Reveal Next Player Answer");
}
_CameraControllerRound1.DisableAllSwitchers();
_CameraControllerRound1.SendCustomEventDelayedSeconds("SwitchToAllPlayersCamera", 1.5f);
_CameraControllerRound1.SendCustomEventDelayedSeconds("ActivateHostAllPlayersCameraSwitcher", 4.0f);
}
@ -1438,6 +1448,7 @@ public class GameManagerRound1 : GameManagerBase
{
_Modem.Teleport();
SendCustomEventDelayedSeconds(nameof(_ContinueToRound2_Private), 2.5f);
_CameraControllerRound1.DisableAllSwitchers();
_CameraControllerRound1.SwitchToModemCamera();
}
public void _ContinueToRound2_Private()
@ -1683,15 +1694,19 @@ public class GameManagerRound1 : GameManagerBase
switch (_BuzzedInPlayer)
{
case 1:
_CameraControllerRound1.DisableAllSwitchers();
_CameraControllerRound1.SwitchToPlayer1Camera();
break;
case 2:
_CameraControllerRound1.DisableAllSwitchers();
_CameraControllerRound1.SwitchToPlayer2Camera();
break;
case 3:
_CameraControllerRound1.DisableAllSwitchers();
_CameraControllerRound1.SwitchToPlayer3Camera();
break;
default:
_CameraControllerRound1.DisableAllSwitchers();
_CameraControllerRound1.SwitchToAllPlayersCamera();
break;
}
@ -1766,16 +1781,16 @@ public class GameManagerRound1 : GameManagerBase
{
switch (_QuestionStage)
{
case 1: InitialiseCluePresentation(); break;
case 2: MultipleChoiceRevealChoice1(); break;
case 3: MultipleChoiceRevealChoice2(); break;
case 4: MultipleChoiceRevealChoice3(); break;
case 5: MultipleChoiceLockAnswers(); break;
case 6: MultipleChoiceFocusOnPlayer1(); break;
case 7: MultipleChoiceFocusOnPlayer2(); break;
case 8: MultipleChoiceFocusOnPlayer3(); break;
case 9: MultipleChoiceRevealAnswersAndAssignPoints(); break;
case 10: AdvanceToNextQuestion(); break;
case 1: InitialiseCluePresentation(); break;
case 2: MultipleChoiceRevealChoice1(); break;
case 3: MultipleChoiceRevealChoice2(); break;
case 4: MultipleChoiceRevealChoice3(); break;
//case 5: MultipleChoiceLockAnswers(); break;
case 5: MultipleChoiceFocusOnPlayer(1); break;
case 6: MultipleChoiceFocusOnPlayer(2); break;
case 7: MultipleChoiceFocusOnPlayer(3); break;
case 8: MultipleChoiceRevealAnswersAndAssignPoints(); break;
case 9: AdvanceToNextQuestion(); break;
default: break;
}
}
@ -1863,14 +1878,15 @@ public class GameManagerRound1 : GameManagerBase
private void _PlayVideo()
{
_CameraControllerRound1.SwitchToHostCamera();
_CameraControllerRound1.DisableAllSwitchers();
_CameraControllerRound1.SwitchToHostCamera();
_VideoPlayer.PlayVideo = true;
SendCustomEventDelayedSeconds(nameof(SwitchToTVCamera), 2.0f);
}
public void SwitchToTVCamera()
{
_CameraControllerRound1.DisableAllSwitchers();
_CameraControllerRound1.SwitchToVideoPlayerCamera();
SendCustomEventDelayedSeconds(nameof(CheckVideoPlayerTimeToEnd), 0.25f);
}
@ -1880,6 +1896,7 @@ public class GameManagerRound1 : GameManagerBase
{
if ((_VideoPlayer.GetVideoDuration() - _VideoPlayer.GetVideoTime()) <= 2.0f)
{
_CameraControllerRound1.DisableAllSwitchers();
_CameraControllerRound1.SwitchToHostCamera();
}
else

View File

@ -71,6 +71,8 @@ public class GameManagerRound2 : GameManagerBase
SendCustomNetworkEvent(NetworkEventTarget.All, nameof(EnableAudienceSilencer), true);
_CameraControllerRound2.InitialiseCameras();
_CameraControllerRound2.DisableAllSwitchers();
_CameraControllerRound2.ActivateHostAllPlayersCameraTrigger();
RequestSerialization();
}
@ -162,6 +164,9 @@ public class GameManagerRound2 : GameManagerBase
private void DisplayBriefing()
{
_CameraControllerRound2.DeactivateHostAllPlayersCameraTrigger();
_CameraControllerRound2.ActivateHostPlayersAndWideShotCameraSwitcher();
HostCardRecoverTheLootExplainerInterface RecoverTheLootInterface =
(HostCardRecoverTheLootExplainerInterface)GetHostCardInterface(RoundSegmentType.RecoverTheLootExplainer);

View File

@ -190,6 +190,7 @@ public class GameManagerRound3 : GameManagerBase
_GameStatus = GameStatus.Begin;
UpdateInterface();
_CameraControllerRound3.DisableAllSwitchers();
_CameraControllerRound3.HostPlayerTimerToggle.Activate = false;
_CameraControllerRound3.ActivatePlayfieldSwitchTriggerGroup = true;
GetCurrentMarker().SendCustomNetworkEvent(NetworkEventTarget.Owner, "Activated", true);
@ -323,8 +324,7 @@ public class GameManagerRound3 : GameManagerBase
GetCurrentMarker().SendCustomNetworkEvent(NetworkEventTarget.Owner, "Activated", true);
}
//_HostCameraAnchors[ActiveMarker].AttachCamera(_HostCamera);
//_PlayerCameraAnchors[ActiveMarker].AttachCamera(_PlayerCamera);
_CameraControllerRound3.MarkerCameraAnchorPosition = ActiveMarker;
}
[NetworkCallable]

View File

@ -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:

View File

@ -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:

View File

@ -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:

View File

@ -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:

View File

@ -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:

View File

@ -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:

View File

@ -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:

@ -1 +1 @@
Subproject commit 46de01003348b6535b1caec676413ef2570916f8
Subproject commit 7145f5a5dd1781ea98cd3df9bc96655803c07ccd