public static void FireProjectile_Enemy(GameObject projectile, Transform spawnPoint) { var proj = ObjectPooling.GetAvailableObject(projectile); proj.transform.position = spawnPoint.position; proj.transform.rotation = spawnPoint.rotation; proj.SetActive(true); }
public void Shoot() { shootPool .GetAvailableObject() .Some(obj => obj.Activate <ProjectileController>((shoot) => { shoot.transform.position = shooterSpawnPoint.transform.position; shoot.Setup(1, gameObject); }) ); }
public void FireMethod(Transform[] spawnPositions, bool shadowShot) { var poolProjectile = ObjectPooling.GetAvailableObject(!shadowShot ? currentWeapon.projectile[0] : currentWeapon.shadowProjectile[0]); poolProjectile.transform.position = spawnPositions[0].position; poolProjectile.transform.rotation = spawnPositions[0].rotation; poolProjectile.SetActive(true); PlaySoundEffect(SoundManager.instance.ChargeLaserSfx); }
public void FireMethod(Transform[] spawnPositions, bool shadowShot) { for (int i = 0; i < 5; i++) { var poolProjectile = ObjectPooling.GetAvailableObject(!shadowShot ? currentWeapon.projectile[0] : currentWeapon.shadowProjectile[0]); poolProjectile.transform.position = spawnPositions[i].position; poolProjectile.transform.rotation = spawnPositions[i].rotation; poolProjectile.SetActive(true); } DecreaseAmmoByOne(); ResetFireTimer(); PlaySoundEffect(SoundManager.instance.RedLaserSfx); }
private void InstantiateEnemy() { var minPos = CameraUtils.GetMousePosition2D(new Vector2(0, 0)); var maxPos = CameraUtils.GetMousePosition2D( new Vector2(Screen.width, Screen.height) ); var posY = Random.Range(minPos.y, maxPos.y); var spawnPosition = new Vector3(maxPos.x, posY); var obj = enemyPooling.GetAvailableObject(); if (!obj.IsPresent) { return; } var enemyObj = obj.Get(); enemyObj.transform.position = spawnPosition; enemyObj.GetComponent <HealthSystem>().HealFull(); var movementIdx = Random.Range(0, enemyMovementTypes.Count); if (movementIdx != 0) { var mov = enemyMovementTypes[movementIdx]; enemyMovementPooling.GetAvailableObject(mov) .Some(obj => { obj.transform.position = spawnPosition; obj.Activate <SplineMonoBehaviour>( sObj => enemyObj .GetComponent <SplineFollower>() .Setup( sObj, mov == "circle" ? SplineFollowBehaviour.loop : SplineFollowBehaviour.backAndForth ) ); }); } enemyObj.Activate(); }
public void FireMethod(Transform[] spawnPositions, bool shadowShot) { var spawns = spawnPositions[6].GetComponentsInChildren <Transform>(); foreach (var spawn in spawns) { var poolProjectile = ObjectPooling.GetAvailableObject(!shadowShot ? currentWeapon.projectile[0] : currentWeapon.shadowProjectile[0]); poolProjectile.transform.position = spawn.position; poolProjectile.transform.rotation = spawn.rotation; poolProjectile.SetActive(true); } DecreaseAmmoByOne(); ResetFireTimer(); PlaySoundEffect(SoundManager.instance.RedLaserSfx); }