private void CreateNotFoundUnit(UnitTag tag, OutputUnitState serverUnit) { world.NewEntityWith(out UnitCreateEvent unitEvent); unitEvent.Position = serverUnit.Position.ToUnityVector(); unitEvent.UnitTag = tag; unitEvent.PlayerId = serverUnit.PlayerId; unitEvent.Id = serverUnit.Id; unitEvent.Health = serverUnit.Health; }
private void CreateNotFoundBuilding(BuildingTag tag, OutputUnitState serverBuilding) { var enemyBuild = BuildingHelper.CreateBuilding(world, buildingAssets.Get1[0].BuildingsAssets["Enemy" + tag.ToString()], buildingAssets.Get1[0].InBuildingCanvasesAssets["None"], serverBuilding.Position.ToUnityVector(), serverBuilding.RotationInEulerAngle.ToUnityVector(), tag, serverBuilding.Id); enemyBuild.Set <EnemyBuildingComponent>(); var hb = enemyBuild.Get <HealthComponent>(); hb.MaxHp = serverBuilding.Health; hb.CurrentHp = serverBuilding.Health; }
private bool TryUpdateClientUnit(OutputUnitState serverUnit, IEnumerable <EcsEntity> clientUnits) { var isUnitUpdate = false; foreach (var clientUnit in clientUnits) { var uComp = clientUnit.Get <UnitComponent>(); if (uComp.Guid != serverUnit.Id) { continue; } isUnitUpdate = true; uComp.Object.GetComponent <NavMeshAgent>().SetDestination(serverUnit.Position.ToUnityVector()); break; } return(isUnitUpdate); }
private bool TryUpdateClientBuilding(OutputUnitState serverBuild, IEnumerable <EcsEntity> clientBuildings) { var isUnitUpdate = false; foreach (var clientBuild in clientBuildings) { var uComp = clientBuild.Get <BuildingComponent>(); if (uComp.Guid != serverBuild.Id) { continue; } isUnitUpdate = true; uComp.Object.transform.position = serverBuild.Position.ToUnityVector(); clientBuild.Get <HealthComponent>().CurrentHp = serverBuild.Health; break; } return(isUnitUpdate); }