public static EcsEntity CreateBuilding(EcsWorld world, GameObject buildingAsset, Canvas canvasAsset, Vector3 position, Vector3 rotation, BuildingTag tag, Guid Id) { var buildingEntity = world.NewEntityWith(out BuildingComponent building); building.Object = GameObject.Instantiate(buildingAsset, position, Quaternion.Euler(rotation)); building.InBuildCanvas = GuiHelper.InstantiateAllButtons(canvasAsset, world); building.Tag = tag; building.AllButtons = building.InBuildCanvas.GetComponentsInChildren <Button>(); building.Guid = Id; buildingEntity.Set <HealthComponent>().InitializeComponent(200); buildingEntity.Set <HealthBarComponent>().InitializeComponent(building.Object); buildingEntity.Set <MovementComponent>().InitializeComponent(building.Object); if (tag == BuildingTag.Base) { buildingEntity.Set <BaseComponent>(); } return(buildingEntity); }
public static EcsEntity CreateBuilding(EcsWorld world, GameObject buildingAsset, Canvas canvasAsset, Vector3 position, Vector3 rotation, BuildingTag tag) { var building = CreateBuilding(world, buildingAsset, canvasAsset, position, rotation, tag, Guid.NewGuid()); building.Set <MyBuildingComponent>(); return(building); }
public static void SetFields( this BuildingComponent buildingComponent, GameObject obj, BuildingTag buildingType, Guid id, Canvas canvas, EcsWorld world) { buildingComponent.Object = obj; buildingComponent.Tag = buildingType; buildingComponent.AllButtons = buildingComponent.InBuildCanvas.GetComponentsInChildren <Button>(); buildingComponent.InBuildCanvas = GuiHelper.InstantiateAllButtons(canvas, world); buildingComponent.InBuildCanvas.enabled = false; buildingComponent.Guid = id; }
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; }