Пример #1
0
        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);
        }
Пример #2
0
        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);
            }
        }
Пример #3
0
        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);
                        }
                    }
                }
            }
        }