using System; using GameCore.Network; using Unity.Collections; using Unity.Jobs; using Unity.Networking.Transport; using UnityEngine; namespace ECSTest { public class ClientMain : MonoBehaviour { public string address = "127.0.0.1"; public NetworkDriverAsset driverAsset; private NetworkDriver driver; private NetworkPipeline unreliablePipeline; private NetworkPipeline reliablePipeline; private NativeReference connection; private JobHandle jobHandle; private void OnEnable() { driver = driverAsset.CreateClientDriver(address, out var c, out unreliablePipeline, out reliablePipeline); connection = new NativeReference(c, Allocator.Persistent); } private void OnDisable() { jobHandle.Complete(); if (connection.IsCreated) { driver.Disconnect(connection.Value); driver.ScheduleUpdate().Complete(); } connection.Dispose(); driver.Dispose(); } void Update() { jobHandle.Complete(); //TODO Render() jobHandle = driver.ScheduleUpdate(); jobHandle = new ClientUpdateJob() { driver = driver, unreliablePipeline = unreliablePipeline, reliablePipeline = reliablePipeline, connection = connection, }.Schedule(jobHandle); } } }