private void Awake() { if (Instance != null) { Destroy(this.gameObject); return; } Instance = this; }
void Awake() { Storage = GameManager.Instance.ArrowStorage; _arrowContainer = new GameObject(); _arrowContainer.name = "PaintedArrowContainer"; _paintedArrows = new List <GameObject>(); _arrowPool = GetComponent <ArrowPool>(); }
public void Initialize() { if (CoinEffectPoolObject == null) { CoinEffectPoolObject = new CoinEffectPool(this.coinEffectPrefab); } if (EnemyDirectionEffectPoolObject == null) { EnemyDirectionEffectPoolObject = new EnemyDirectionEffectPool(this.enemyDirectionEffectPrefab); } if (BakuhatuEffectPoolObject == null) { BakuhatuEffectPoolObject = new BakuhatuEffectPool(this.bakuhatuEffectPrefab); } if (ArrowPoolObject == null) { ArrowPoolObject = new ArrowPool(this.arrowPrefab); } if (ArrowTouchEffectPoolObject == null) { ArrowTouchEffectPoolObject = new ArrowContactEffectPool(this.arrowTouchEffectPrefab); } if (ArrowContactFlashEffectPoolObject == null) { ArrowContactFlashEffectPoolObject = new ArrowContactFlashEffectPool(this.arrowContactFlashEffectPrefab); } if (AmmunitionPoolObject == null) { AmmunitionPoolObject = new AmmunitionPool(this.ammunitionPrefab); } if (AmmunitionSmokeEffectPoolObject == null) { AmmunitionSmokeEffectPoolObject = new AmmunitionSmokeEffectPool(this.ammunitionSmokeEffectPrefab); } if (CArrowPoolObject == null) { CArrowPoolObject = new CArrowPool(this.centerBuildingArrowPrefab); } if (IceCirclePoolObject == null) { IceCirclePoolObject = new IceCirclePool(this.iceCirclePrefab); } if (SlowDownEffectPoolObject == null) { SlowDownEffectPoolObject = new SlowDownEffectPool(this.slowDownEffectPrefab); } if (MagicLinePoolObject == null) { MagicLinePoolObject = new MagicLinePool(this.magicLinePrefab); } ClearPool(); }
void Fire() { var arrow = ArrowPool.Get <SimpleArrowTrajectile>( spawnPos: arrowFireTransform.position, directionVector: transform.forward) as SimpleArrowTrajectile; arrow.ShotBy = this.Self; arrow.LaunchDirection = new Vector3(0, -0.1f, 1f); StartCoroutine(arrow.MoveStraight()); StartCoroutine(ReturnTrajectileToPool()); IEnumerator ReturnTrajectileToPool() { yield return(new WaitForSeconds(5f)); ArrowPool.ReturnToPool(arrow); arrow.gameObject.SetActive(false); } }