CarmenSandiego/Assets/UdonSharp/Cameras/CameraControllerRound3.cs

138 lines
3.8 KiB
C#

using UdonSharp;
using UnityEngine;
using VRC.SDKBase;
using VRC.Udon;
[UdonBehaviourSyncMode(BehaviourSyncMode.Manual)]
public class CameraControllerRound3 : CameraControllerBase
{
[Space]
[SerializeField] public Camera PlayerCamera;
[SerializeField] public Camera HostCamera;
[SerializeField] public Camera OverheadCamera;
[SerializeField] public Camera FrontCamera;
[SerializeField] public Camera PrimaryFocusCamera;
[SerializeField] public Camera VideoPlayerCamera;
[Space]
//[SerializeField] public CameraTimerSwitchTrigger HostCameraTrigger;
[Space]
//[SerializeField] public CameraTimedSwitcher HostAndAllPlayersTimerToggle;
//[SerializeField] public CameraTimedSwitcher HostAndIndividualPlayersTimerToggle;
[Space]
[SerializeField] public CameraAnchor HostStartingCameraAnchor;
[SerializeField] public CameraAnchor PlayerStartingCameraAnchor;
[SerializeField] public CameraAnchor OverheadCameraAnchor;
[SerializeField] public CameraAnchor FrontCameraAnchor;
[SerializeField] public CameraAnchor NewspaperCameraAnchor;
[SerializeField] public CameraAnchor VideoPlayerCameraAnchor;
[Space]
[SerializeField] public CameraAnchor[] HostCameraAnchorSequence;
[SerializeField] public CameraAnchor[] PlayerCameraAnchorSequence;
public override void InitialiseCameras()
{
HostStartingCameraAnchor.AttachCamera(PlayerCamera);
PlayerStartingCameraAnchor.AttachCamera(HostCamera);
OverheadCameraAnchor.AttachCamera(OverheadCamera);
FrontCameraAnchor.AttachCamera(FrontCamera);
NewspaperCameraAnchor.AttachCamera(PrimaryFocusCamera);
VideoPlayerCameraAnchor.AttachCamera(VideoPlayerCamera);
}
public override void OnOwnershipTransferred(VRCPlayerApi Player)
{
Networking.SetOwner(Player, PlayerCamera.gameObject);
Networking.SetOwner(Player, HostCamera.gameObject);
Networking.SetOwner(Player, OverheadCamera.gameObject);
Networking.SetOwner(Player, FrontCamera.gameObject);
Networking.SetOwner(Player, PrimaryFocusCamera.gameObject);
Networking.SetOwner(Player, VideoPlayerCamera.gameObject);
Networking.SetOwner(Player, HostStartingCameraAnchor.gameObject);
Networking.SetOwner(Player, PlayerStartingCameraAnchor.gameObject);
Networking.SetOwner(Player, OverheadCameraAnchor.gameObject);
Networking.SetOwner(Player, FrontCameraAnchor.gameObject);
Networking.SetOwner(Player, NewspaperCameraAnchor.gameObject);
Networking.SetOwner(Player, VideoPlayerCameraAnchor.gameObject);
base.OnOwnershipTransferred(Player);
}
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);
}
public void ActivateWideShotCamera()
{
//DefaultWideShotCameraAnchor.AttachCamera(PrimaryFocusCamera);
}
public void SwitchToWideShotCamera()
{
//DisableAllSwitchers();
//ActivateWideShotCamera();
//SwitchToLiveCamera(PrimaryFocusCamera);
}
public void ActivateHostAllPlayersCameraSwitcher()
{
//ActivateAllPlayersCamera();
//HostAndIndividualPlayersTimerToggle.Activate = false;
//HostAndAllPlayersTimerToggle.Activate = true;
}
public void ActivateHostCameraTrigger()
{
//HostCameraTrigger.gameObject.SetActive(true);
}
public void DeactivateHostCameraTrigger()
{
//HostCameraTrigger.gameObject.SetActive(false);
}
public override void DisableAllTriggers()
{
//HostCameraTrigger.gameObject.SetActive(false);
}
public override void DisableAllSwitchers()
{
//HostAndAllPlayersTimerToggle.Activate = false;
//HostAndIndividualPlayersTimerToggle.Activate = false;
}
}