protected override void OnUpdate() { Entity hitEntity; Entities .WithoutBurst() .WithStructuralChanges() .ForEach(( Entity entity, int entityInQueryIndex, ref MouseInput mouseInput ) => { if (mouseInput.primaryAction == 0) { return; } hitEntity = RaycastUtils.Raycast( mouseInput.mousePosition, out RaycastHit hit, buildPhysicsWorldSystem ); if (hitEntity == Entity.Null) { return; } if (EntityManager.HasComponent <SettlerTag>(hitEntity)) { SelectUnit.Create(hitEntity); // EntityManager.AddComponentData<Selected>(hitEntity, new Selected {}); mouseInput.primaryAction = 0; return; } HexCoordinates coordinates = CoordinatesService.GetCoordinatesFromPosition(hit.Position); Entity selectedEntity = HexCellService.FindBy(coordinates); if (EntityManager.HasComponent <Selected>(selectedEntity)) { SelectCommand.Remove(coordinates); } else { SelectCommand.Create(coordinates); } mouseInput.primaryAction = 0; }) .Run(); }
public void SelectCity() { SelectCommand.Create(cityData.hexCoordinates); }
public void Execute() { SelectCommand.Create(cityData.hexCoordinates); }