public void SpawnUnits(int spawnCount)
    {
        PrefabEntityComponent prefabEntityComponent = GetSingleton <PrefabEntityComponent>();

        CanvasManager.instance.IncrementSpawnText(spawnCount);
        for (int i = 0; i < spawnCount; i++)
        {
            Entity spawnedEntity = EntityManager.Instantiate(prefabEntityComponent.prefabEntity);
            EntityManager.SetComponentData(spawnedEntity, new Translation {
                Value = new float3(0, 0, 0)
            });
        }
    }
    protected override void OnUpdate()
    {
        float deltaTime = Time.DeltaTime;

        Entities
        .ForEach((ref UnitInputData player, ref Translation trans,
                  ref Rotation rot, ref GunData gunData) => {
            if (gunData.coolDownTimer > 0)
            {
                gunData.coolDownTimer -= deltaTime;
            }
            else if (player.mousePressed)
            {
                gunData.coolDownTimer = gunData.coolDown;
                int loopamount        = 1;
                switch (gunData.GunType)
                {
                case 0:
                    loopamount = 1;
                    break;

                case 1:
                    loopamount = 5;
                    break;
                }
                int i = 0;
                PrefabEntityComponent prefabEntityComponent = GetSingleton <PrefabEntityComponent>();
                while (i < loopamount)
                {
                    Entity spawnedEntity = EntityManager.Instantiate(prefabEntityComponent.BulletPrefab);
                    EntityManager.SetComponentData(spawnedEntity,
                                                   new Translation {
                        Value = trans.Value + new float3((Quaternion)rot.Value * gunData.localPosition)
                    });
                    EntityManager.SetComponentData(spawnedEntity,
                                                   new Rotation {
                        Value = rot.Value
                    });
                    EntityManager.SetComponentData(spawnedEntity,
                                                   new PhysicsVelocity {
                        Linear = (Quaternion)rot.Value * Vector3.forward * 10
                    });
                    i++;
                }
            }
        });
    }
Beispiel #3
0
    protected override void OnUpdate()
    {
        Entities.ForEach((ref PrefabEntityComponent prefabs) => {
            if (prefabs.spawnedEnemies < 100)
            {
                Entity spawnedEntity = EntityManager.Instantiate(prefabs.EnemyPrefab);
                Vector3 position     = new Vector3(random.NextFloat(-1, 1), 0, random.NextFloat(-1, 1)).normalized;
                position            *= random.NextFloat(12, 55);
                EntityManager.SetComponentData(spawnedEntity, new Translation {
                    Value = position
                });
                EntityManager.SetComponentData(spawnedEntity, new NPCTag {
                    target = position, range = 10
                });
                prefabs.spawnedEnemies++;
                if (prefabs.spawnedPickups == false)
                {
                    prefabs.spawnedPickups = true;

                    PrefabEntityComponent prefabRef = prefabs;
                    Entities.ForEach((ref PickUpSpawn spawn, ref Translation trans) => {
                        if (!EntityManager.Exists(spawn.myPickup))
                        {
                            float randomNumber = random.NextFloat(0, 100);
                            if (randomNumber < 40)
                            {
                                spawn.myPickup = EntityManager.Instantiate(prefabRef.healthPickup);
                            }
                            else if (randomNumber < 65)
                            {
                                spawn.myPickup = EntityManager.Instantiate(prefabRef.gunPickup);
                            }
                            else
                            {
                                spawn.myPickup = EntityManager.Instantiate(prefabRef.shotgunPickup);
                            }
                            EntityManager.SetComponentData(spawn.myPickup, new Translation {
                                Value = trans.Value
                            });
                        }
                    });
                }
            }
        });
    }