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;
 }
Example #2
0
        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);
        }
Example #4
0
        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);
        }