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; } }