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++; } } }); }
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 }); } }); } } }); }