protected override IEnumerator Action() { yield return(new WaitForSecondsRealtime( character.CharacterAnimator.GetCurrentAnimatorStateInfo(0).length + delayAfterAnimationIsFinished )); actualBullet = PoolsManager.GetObjectFromPools(bulletPrefab).GetComponent <Bullet>(); actualBullet.gameObject.SetActive(true); if (target != null) { RotateActualBulleTowardsDirection(GetTargetDirection()); } else { RotateActualBulleTowardsDirection(GetTargetDirection(lastTargetPosition)); } actualBullet.Launch(launchForce); actualBullet = null; PlaySfx(); yield break; }
private void CreateCurrentBullet() { if (Time.timeSinceLevelLoad > lastShoot + cooldown && actualBullet == null) { actualBullet = PoolsManager.GetObjectFromPools(bulletPrefab).GetComponent <SpookyBullet>(); actualBullet.transform.position = shootPoint.position; } }
private void SpawnEnemy(string _enemyID) { Character tempEnemy = null; switch (_enemyID) { case "Stealer": tempEnemy = PoolsManager.GetObjectFromPools(enemiesPrefabs[0]).GetComponent <Character>(); break; case "Attacker": tempEnemy = PoolsManager.GetObjectFromPools(enemiesPrefabs[1]).GetComponent <Character>(); break; default: break; } tempEnemy.transform.position = LevelManager.Instance.GetRandomSpawnPoint().position; return; }