private void Spawn(ref OneSpawnParameter parameter, Entity prefab, ref Random random, float3 position, int groupId) { if (parameter.currentEntity >= parameter.maxEntity) { parameter.spawnTimer = parameter.spawnTime; return; } parameter.spawnTimer -= Time.DeltaTime; if (parameter.spawnTimer > 0f) { return; } parameter.spawnTimer = parameter.spawnTime; parameter.currentEntity++; var entity = EntityManager.Instantiate(prefab); var randomSize = 1f; var randomOffset = new float3(random.NextFloat(randomSize * 2) - randomSize, 0, random.NextFloat(randomSize * 2) - randomSize); EntityManager.SetComponentData(entity, new Translation { Value = position + randomOffset }); var fighter = EntityManager.GetComponentData <Fighter>(entity); fighter.groupId = groupId; fighter.goalPos = position; fighter.state = FightState.Standing; fighter.Id = entity.Index; EntityManager.SetComponentData(entity, fighter); FighterEntityContainer.AddEntity(entity); }
public static void SelectEntity(Entity entity) { instance.loadingIcon.SetEntity(entity); if (entity == Entity.Null) { return; } var em = World.DefaultGameObjectInjectionWorld.EntityManager; if (em.HasComponent <Selectable>(entity)) { var selection = em.GetComponentData <Selectable>(entity); FighterEntityContainer.SetSelect(!selection.Selected, entity, em); } }
private static void SelectSquere(Vector2 min, Vector2 max) { var em = World.DefaultGameObjectInjectionWorld.EntityManager; var all = em.GetAllEntities(Unity.Collections.Allocator.Temp); foreach (var entity in all) { if (em.HasComponent <Translation>(entity)) { var translation = em.GetComponentData <Translation>(entity); Vector3 screenPos = Camera.main.WorldToScreenPoint(translation.Value); if (min.x < screenPos.x && min.y < screenPos.y && max.x > screenPos.x && max.y > screenPos.y) { if (em.HasComponent <Selectable>(entity)) { FighterEntityContainer.SetSelect(true, entity, em); } } } } }