69 lines
2.9 KiB
C#
69 lines
2.9 KiB
C#
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<ObjectSync>();
|
|
objSync.syncListServerRPC(NetworkManager.Singleton.LocalClientId);
|
|
}
|
|
}
|
|
}
|