using System.Collections; using System.Collections.Generic; using Unity.Netcode; using Unity.XR.CoreUtils; using UnityEngine; using UnityEngine.InputSystem.XR; using UnityEngine.Rendering.Universal; using UnityEngine.XR.Interaction.Toolkit; using UnityEngine.XR.Interaction.Toolkit.Inputs; //this script enables important components for the owners player //the components listed here should be active for others player objects //f.e.: unity will switch to other joined players camera if not handled public class PlayerRemoveNetworkComps : NetworkBehaviour { [SerializeField] private InputActionManager inputActionManager; [SerializeField] private XROrigin xrOrigin; [SerializeField] private Camera cam; [SerializeField] private AudioListener audioListener; [SerializeField] private ActionBasedController leftController; [SerializeField] private ActionBasedController rightController; [SerializeField] private XRRayInteractor leftRayInteractor; [SerializeField] private XRRayInteractor rightRayInteractor; [SerializeField] private XRInteractorLineVisual leftLineVisual; [SerializeField] private XRInteractorLineVisual rightLineVisual; [SerializeField] private Animator rightHandAnimator; [SerializeField] private Animator leftHandAnimator; [SerializeField] private SkinnedMeshRenderer leftHandRenderer; [SerializeField] private SkinnedMeshRenderer rightHandRenderer; [SerializeField] private LocomotionSystem locomotionSystem; [SerializeField] private ActionBasedContinuousMoveProvider moveProvider; [SerializeField] private ActionBasedContinuousTurnProvider turnProvider; [SerializeField] private TrackedPoseDriver trackedPoseDriver; [SerializeField] private GameObject menuBar; public override void OnNetworkSpawn() { if (IsOwner) { inputActionManager.enabled = true; xrOrigin.enabled = true; cam.enabled = true; audioListener.enabled = true; leftController.enabled = true; rightController.enabled = true; leftRayInteractor.enabled = true; rightRayInteractor.enabled = true; leftLineVisual.enabled = true; rightLineVisual.enabled = true; leftHandAnimator.enabled = true; rightHandAnimator.enabled = true; leftHandRenderer.enabled = true; rightHandRenderer.enabled = true; locomotionSystem.enabled = true; moveProvider.enabled = true; turnProvider.enabled = true; trackedPoseDriver.enabled = true; menuBar.SetActive(true); //request all objects that have been already loaded from the server / host ObjectSync objSync = GameObject.Find("ObjectSpawner").GetComponent(); objSync.syncListServerRPC(NetworkManager.Singleton.LocalClientId); } } }