using UnityEngine; namespace Landfall.Network; public class NetworkController : MonoBehaviour { [SerializeField] private MonoBehaviour[] m_ScriptsToDisable; [SerializeField] private Camera[] m_CamerasToDisable; [SerializeField] private Transform m_Hip; private bool m_HasControl; private NetworkManager m_NetworkManager; private string m_Name; public void Init(NetworkManager manager, bool hasControl, string playerName) { m_NetworkManager = manager; m_HasControl = hasControl; GetComponent().ChangeControl(m_HasControl); m_Name = playerName; } private void StripPlayer() { if (!m_HasControl) { MonoBehaviour[] scriptsToDisable = m_ScriptsToDisable; foreach (MonoBehaviour monoBehaviour in scriptsToDisable) { monoBehaviour.enabled = false; } Camera[] camerasToDisable = m_CamerasToDisable; foreach (Camera camera in camerasToDisable) { camera.enabled = false; } } } private void Update() { if (m_HasControl) { SendUpdatesToServer(); } } private void SendUpdatesToServer() { Vector3 position = m_Hip.position; m_NetworkManager.UpdateFromLocalClient(position); } public void UpdatePosition(Vector3 newPos) { base.transform.position = newPos; } }