protected override void HandleWorkerConnectionEstablished() { PlayerLifecycleHelper.AddClientSystems(Worker.World); TransformSynchronizationHelper.AddClientSystems(Worker.World); IEntityGameObjectCreator fallbackCreator = new GameObjectCreatorFromMetadata(Worker.WorkerType, Worker.Origin, Worker.LogDispatcher); IEntityGameObjectCreator customCreator = new PlayerGameObjectCreator(fallbackCreator, Worker.World, Worker.WorkerType); GameObjectCreationHelper.EnableStandardGameObjectCreation(Worker.World, customCreator); }
public AdvancedEntityPipeline(WorkerInWorld worker, string authPlayer, string nonAuthPlayer) { workerId = worker.WorkerId; workerType = worker.WorkerType; workerOrigin = worker.Origin; fallback = new GameObjectCreatorFromMetadata(workerType, workerOrigin, worker.LogDispatcher); cachedAuthPlayer = Resources.Load <GameObject>(authPlayer); cachedNonAuthPlayer = Resources.Load <GameObject>(nonAuthPlayer); }
protected override void HandleWorkerConnectionEstablished() { PlayerLifecycleHelper.AddClientSystems(Worker.World, false); var fallback = new GameObjectCreatorFromMetadata(Worker.WorkerType, Worker.Origin, Worker.LogDispatcher); GameObjectCreationHelper.EnableStandardGameObjectCreation( Worker.World, new AdvancedEntityPipeline(Worker, AuthPlayer, NonAuthPlayer, fallback)); }
private void ConfigurePlayerLifeCycle(Unity.Entities.World world) { PlayerLifecycleHelper.AddClientSystems(world); world.GetOrCreateManager <HandlePlayerHeartbeatRequestSystem>(); var fallback = new GameObjectCreatorFromMetadata(Worker.WorkerId, Worker.Origin, Worker.LogDispatcher); GameObjectCreationHelper.EnableStandardGameObjectCreation( world, new AdvancedEntityCreationPipeline( Worker, EntityUtils.PlayerEntityType, AuthPlayer, NonAuthPlayer, fallback), gameObject); }
protected override void HandleWorkerConnectionEstablished() { PlayerLifecycleHelper.AddClientSystems(Worker.World); // 改变状态 ClientManager.Instance.StateMachine.TriggerTransition(ConnectionFSMStateEnum.StateEnum.CONNECTED); // 创建实体的预制件 var fallbackCreator = new GameObjectCreatorFromMetadata(Worker.WorkerType, Worker.Origin, Worker.LogDispatcher); var customCreator = new EntityGameObjectCreator(fallbackCreator, Worker.World, Worker.WorkerType); Debug.Log("HandleWorkerConnectionEstablished!"); GameObjectCreationHelper.EnableStandardGameObjectCreation(Worker.World, customCreator); }
protected override void HandleWorkerConnectionEstablished() { var world = Worker.World; PlayerLifecycleHelper.AddClientSystems(world, autoRequestPlayerCreation: false); PlayerLifecycleConfig.MaxPlayerCreationRetries = 0; var fallback = new GameObjectCreatorFromMetadata(Worker.WorkerType, Worker.Origin, Worker.LogDispatcher); // Set the Worker gameObject to the ClientWorker so it can access PlayerCreater reader/writers GameObjectCreationHelper.EnableStandardGameObjectCreation( world, new AdvancedEntityPipeline(Worker, AuthPlayer, NonAuthPlayer, fallback), gameObject); base.HandleWorkerConnectionEstablished(); }
protected override void HandleWorkerConnectionEstablished() { var world = Worker.World; // Only take the Heartbeat from the PlayerLifecycleConfig Client Systems. world.GetOrCreateManager <HandlePlayerHeartbeatRequestSystem>(); var fallback = new GameObjectCreatorFromMetadata(Worker.WorkerType, Worker.Origin, Worker.LogDispatcher); // Set the Worker gameObject to the ClientWorker so it can access PlayerCreater reader/writers GameObjectCreationHelper.EnableStandardGameObjectCreation( world, new AdvancedEntityPipeline(Worker, AuthPlayer, NonAuthPlayer, fallback), gameObject); base.HandleWorkerConnectionEstablished(); }
protected override void HandleWorkerConnectionEstablished() { Worker.World.GetOrCreateSystem <TankMovementSystem>(); PlayerLifecycleHelper.AddClientSystems(Worker.World); var fallbackCreator = new GameObjectCreatorFromMetadata(Worker.WorkerType, Worker.Origin, Worker.LogDispatcher); var customCreator = new CustomGameObjectCreator(fallbackCreator, Worker.World, Worker.WorkerType, Worker.Origin, Worker.LogDispatcher); GameObjectCreationHelper.EnableStandardGameObjectCreation(Worker.World, customCreator); TransformSynchronizationHelper.AddClientSystems(Worker.World); if (level == null) { return; } levelInstance = Instantiate(level, transform.position, transform.rotation); }
protected override void HandleWorkerConnectionEstablished() { PlayerLifecycleHelper.AddClientSystems(Worker.World); TransformSynchronizationHelper.AddClientSystems(Worker.World); // Set the Worker gameObject to the ClientWorker so it can access PlayerCreater reader/writers var fallback = new GameObjectCreatorFromMetadata(Worker.WorkerType, Worker.Origin, Worker.LogDispatcher); GameObjectCreationHelper.EnableStandardGameObjectCreation( Worker.World, new AdvancedEntityPipeline(Worker, AuthPlayer, NonAuthPlayer, fallback), gameObject); JoinButton.GetComponent <Button>().interactable = true; JoinButton.SetActive(false); LeaveButton.SetActive(true); }
protected override void HandleWorkerConnectionEstablished() { PlayerLifecycleHelper.AddClientSystems(Worker.World); PlayerLifecycleConfig.MaxPlayerCreationRetries = 0; var fallback = new GameObjectCreatorFromMetadata( Worker.WorkerType, Worker.Origin, Worker.LogDispatcher); var entityPipeline = new EntityPipeline( Worker, _authPlayerPrefab, _nonAuthPlayerPrefab, fallback); // Set the Worker gameObject to the ClientWorker so it can access PlayerCreater reader/writers. GameObjectCreationHelper.EnableStandardGameObjectCreation( Worker.World, entityPipeline, gameObject); }
protected override void HandleWorkerConnectionEstablished() { var world = Worker.World; PlayerLifecycleHelper.AddClientSystems(world, autoRequestPlayerCreation: false); PlayerLifecycleConfig.MaxPlayerCreationRetries = 0; var fallback = new GameObjectCreatorFromMetadata(Worker.WorkerType, Worker.Origin, Worker.LogDispatcher); entityPipeline = new AdvancedEntityPipeline(Worker, GetAuthPlayerPrefabPath(), GetNonAuthPlayerPrefabPath(), fallback); entityPipeline.OnRemovedAuthoritativePlayer += RemovingAuthoritativePlayer; // Set the Worker gameObject to the ClientWorker so it can access PlayerCreater reader/writers GameObjectCreationHelper.EnableStandardGameObjectCreation(world, entityPipeline, gameObject); if (UseSessionFlow) { world.GetOrCreateSystem <TrackPlayerSystem>(); } base.HandleWorkerConnectionEstablished(); }