- CameraTimedSwitcher now supports unique timings for each cut. - CameraTimedSwitcher now executes callbacks correctly and consistently.
233 lines
8.2 KiB
C#
233 lines
8.2 KiB
C#
|
|
using UdonSharp;
|
|
using UnityEngine;
|
|
using VRC.SDKBase;
|
|
using VRC.Udon;
|
|
|
|
|
|
[UdonBehaviourSyncMode(BehaviourSyncMode.Manual)]
|
|
public class CameraControllerRound2 : CameraControllerBase
|
|
{
|
|
[Space]
|
|
|
|
[SerializeField] public Camera Player1Camera;
|
|
[SerializeField] public Camera Player2Camera;
|
|
[SerializeField] public Camera HostAndWinnerCamera;
|
|
[SerializeField] public Camera LocationBoardCamera;
|
|
[SerializeField] public Camera PrimaryFocusCamera;
|
|
[SerializeField] public Camera VideoPlayerCamera;
|
|
[Space]
|
|
[SerializeField] public CameraTimerSwitchTrigger HostAndAllPlayersCameraTrigger;
|
|
[Space]
|
|
[SerializeField] public CameraTimedSwitcher HostAllPlayersTimerToggle;
|
|
[SerializeField] public CameraTimedSwitcher HostPlayersAndWideShotTimerToggle;
|
|
[SerializeField] public CameraTimedSwitcher Player1AndLocationBoardTimerToggle;
|
|
[SerializeField] public CameraTimedSwitcher Player2AndLocationBoardTimerToggle;
|
|
[SerializeField] public CameraTimedSwitcher LocationBoardAndShortHostTimerToggle;
|
|
[SerializeField] public CameraTimedSwitcher LocationBoardAndLongHostTimerToggle;
|
|
[SerializeField] public CameraTimedSwitcher LocationBoardAndWinningPlayerTimerToggle;
|
|
[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()
|
|
{
|
|
Player1CameraAnchor.AttachCamera(Player1Camera);
|
|
Player2CameraAnchor.AttachCamera(Player2Camera);
|
|
HostAndWinnerCameraAnchor.AttachCamera(HostAndWinnerCamera);
|
|
LocationBoardCameraAnchor.AttachCamera(LocationBoardCamera);
|
|
VideoPlayerCameraAnchor.AttachCamera(VideoPlayerCamera);
|
|
}
|
|
|
|
public override void OnOwnershipTransferred(VRCPlayerApi Player)
|
|
{
|
|
Networking.SetOwner(Player, Player1Camera.gameObject);
|
|
Networking.SetOwner(Player, Player2Camera.gameObject);
|
|
Networking.SetOwner(Player, HostAndWinnerCamera.gameObject);
|
|
Networking.SetOwner(Player, LocationBoardCamera.gameObject);
|
|
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, Player1AndLocationBoardTimerToggle.gameObject);
|
|
Networking.SetOwner(Player, Player2AndLocationBoardTimerToggle.gameObject);
|
|
Networking.SetOwner(Player, LocationBoardAndShortHostTimerToggle.gameObject);
|
|
Networking.SetOwner(Player, LocationBoardAndLongHostTimerToggle.gameObject);
|
|
Networking.SetOwner(Player, LocationBoardAndWinningPlayerTimerToggle.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()
|
|
{
|
|
SwitchToLiveCamera(Player1Camera);
|
|
}
|
|
|
|
public void SwitchToPlayer2Camera()
|
|
{
|
|
SwitchToLiveCamera(Player2Camera);
|
|
}
|
|
|
|
public void SwitchToHostAndWinnerCamera()
|
|
{
|
|
SwitchToLiveCamera(HostAndWinnerCamera);
|
|
}
|
|
|
|
public void SwitchToLocationBoardCamera()
|
|
{
|
|
SwitchToLiveCamera(LocationBoardCamera);
|
|
}
|
|
|
|
public void SwitchToVideoPlayerCamera()
|
|
{
|
|
SwitchToLiveCamera(VideoPlayerCamera);
|
|
}
|
|
|
|
|
|
public void ActivateWideShotCamera()
|
|
{
|
|
WideShotCameraAnchor.AttachCamera(PrimaryFocusCamera);
|
|
}
|
|
public void SwitchToWideShotCamera()
|
|
{
|
|
ActivateWideShotCamera();
|
|
SwitchToLiveCamera(PrimaryFocusCamera);
|
|
}
|
|
|
|
public void ActivateAllPlayersCamera()
|
|
{
|
|
AllPlayersCameraAnchor.AttachCamera(PrimaryFocusCamera);
|
|
}
|
|
public void SwitchToAllPlayersCamera()
|
|
{
|
|
ActivateAllPlayersCamera();
|
|
SwitchToLiveCamera(PrimaryFocusCamera);
|
|
}
|
|
|
|
|
|
public void ActivateHostAllPlayersCameraSwitcher()
|
|
{
|
|
HostAllPlayersTimerToggle.Activate = true;
|
|
HostPlayersAndWideShotTimerToggle.Activate = false;
|
|
Player1AndLocationBoardTimerToggle.Activate = false;
|
|
Player2AndLocationBoardTimerToggle.Activate = false;
|
|
LocationBoardAndShortHostTimerToggle.Activate = false;
|
|
LocationBoardAndLongHostTimerToggle.Activate = false;
|
|
LocationBoardAndWinningPlayerTimerToggle.Activate = false;
|
|
}
|
|
|
|
public void ActivateHostPlayersAndWideShotCameraSwitcher()
|
|
{
|
|
HostAllPlayersTimerToggle.Activate = false;
|
|
HostPlayersAndWideShotTimerToggle.Activate = true;
|
|
Player1AndLocationBoardTimerToggle.Activate = false;
|
|
Player2AndLocationBoardTimerToggle.Activate = false;
|
|
LocationBoardAndShortHostTimerToggle.Activate = false;
|
|
LocationBoardAndLongHostTimerToggle.Activate = false;
|
|
LocationBoardAndWinningPlayerTimerToggle.Activate = false;
|
|
}
|
|
|
|
public void ActivatePlayer1AndLocationBoardCameraSwitcher()
|
|
{
|
|
HostAllPlayersTimerToggle.Activate = false;
|
|
HostPlayersAndWideShotTimerToggle.Activate = false;
|
|
Player1AndLocationBoardTimerToggle.Activate = true;
|
|
Player2AndLocationBoardTimerToggle.Activate = false;
|
|
LocationBoardAndShortHostTimerToggle.Activate = false;
|
|
LocationBoardAndLongHostTimerToggle.Activate = false;
|
|
LocationBoardAndWinningPlayerTimerToggle.Activate = false;
|
|
}
|
|
|
|
public void ActivatePlayer2AndLocationBoardCameraSwitcher()
|
|
{
|
|
HostAllPlayersTimerToggle.Activate = false;
|
|
HostPlayersAndWideShotTimerToggle.Activate = false;
|
|
Player1AndLocationBoardTimerToggle.Activate = false;
|
|
Player2AndLocationBoardTimerToggle.Activate = true;
|
|
LocationBoardAndShortHostTimerToggle.Activate = false;
|
|
LocationBoardAndLongHostTimerToggle.Activate = false;
|
|
LocationBoardAndWinningPlayerTimerToggle.Activate = false;
|
|
}
|
|
|
|
public void ActivateLocationBoardAndShortHostCameraSwitcher()
|
|
{
|
|
HostAllPlayersTimerToggle.Activate = false;
|
|
HostPlayersAndWideShotTimerToggle.Activate = false;
|
|
Player1AndLocationBoardTimerToggle.Activate = false;
|
|
Player2AndLocationBoardTimerToggle.Activate = false;
|
|
LocationBoardAndShortHostTimerToggle.Activate = true;
|
|
LocationBoardAndLongHostTimerToggle.Activate = false;
|
|
LocationBoardAndWinningPlayerTimerToggle.Activate = false;
|
|
}
|
|
|
|
public void ActivateLocationBoardAndLongHostCameraSwitcher()
|
|
{
|
|
HostAllPlayersTimerToggle.Activate = false;
|
|
HostPlayersAndWideShotTimerToggle.Activate = false;
|
|
Player1AndLocationBoardTimerToggle.Activate = false;
|
|
Player2AndLocationBoardTimerToggle.Activate = false;
|
|
LocationBoardAndShortHostTimerToggle.Activate = false;
|
|
LocationBoardAndLongHostTimerToggle.Activate = true;
|
|
LocationBoardAndWinningPlayerTimerToggle.Activate = false;
|
|
}
|
|
|
|
public void ActivateLocationBoardAndWinningPlayerCameraSwitcher()
|
|
{
|
|
HostAllPlayersTimerToggle.Activate = false;
|
|
HostPlayersAndWideShotTimerToggle.Activate = false;
|
|
Player1AndLocationBoardTimerToggle.Activate = false;
|
|
Player2AndLocationBoardTimerToggle.Activate = false;
|
|
LocationBoardAndShortHostTimerToggle.Activate = false;
|
|
LocationBoardAndLongHostTimerToggle.Activate = false;
|
|
LocationBoardAndWinningPlayerTimerToggle.Activate = true;
|
|
}
|
|
|
|
|
|
public void ActivateHostAllPlayersCameraTrigger()
|
|
{
|
|
HostAndAllPlayersCameraTrigger.gameObject.SetActive(true);
|
|
}
|
|
public void DeactivateHostAllPlayersCameraTrigger()
|
|
{
|
|
HostAndAllPlayersCameraTrigger.gameObject.SetActive(false);
|
|
}
|
|
|
|
|
|
public override void DisableAllTriggers()
|
|
{
|
|
HostAndAllPlayersCameraTrigger.gameObject.SetActive(false);
|
|
}
|
|
|
|
public override void DisableAllSwitchers()
|
|
{
|
|
HostAllPlayersTimerToggle.Activate = false;
|
|
HostPlayersAndWideShotTimerToggle.Activate = false;
|
|
Player1AndLocationBoardTimerToggle.Activate = false;
|
|
Player2AndLocationBoardTimerToggle.Activate = false;
|
|
LocationBoardAndShortHostTimerToggle.Activate = false;
|
|
LocationBoardAndLongHostTimerToggle.Activate = false;
|
|
LocationBoardAndWinningPlayerTimerToggle.Activate = false;
|
|
}
|
|
}
|