public void InitializePool(ThrowedObject template, Transform target, HitParticle hitParticle) { CleanPool(); for (int i = 0; i < _poolCapacity; i++) { ThrowedObject newObject = Instantiate(template, transform); newObject.gameObject.SetActive(false); newObject.Init(target, hitParticle); _objectPool.Add(newObject); } }
private void HandleBulletImpact(Vector3 bulletImpactPos) { HitParticle hitPart = hitParticlesPool.Instantiate(); hitPart.transform.position = bulletImpactPos; hitPart.OnCleanMe = () => { hitParticlesPool.Destroy(hitPart); }; //play a sound audioSource.clip = hitSound; audioSource.Play(); }
private void HandleBossDied(GenericBossBehaviour gbb) { Vector3 deathPos = gbb.gameObject.transform.position; HitParticle hitPart = Instantiate(bossDieParticle, deathPos, Quaternion.identity); hitPart.transform.position = deathPos; hitPart.OnCleanMe = () => { Destroy(hitPart.gameObject); }; //play a sound audioSource.clip = hitSound; audioSource.Play(); }
private void HandleEnemyDied(Enemy enemyData) { Vector3 deathPos = enemyData.transform.position; HitParticle hitPart = enemyDeathEffectPool.Instantiate(); hitPart.transform.position = deathPos; hitPart.OnCleanMe = () => { enemyDeathEffectPool.Destroy(hitPart); }; //play a sound audioSource.clip = hitSound; audioSource.Play(); }
public void Init(Transform target, HitParticle hitParticle) { Target = target; _hitParticle = hitParticle; }
private void SpawnParticle() { hitParticle = hitPool.GetObject(); hitParticle.transform.localPosition = spawnerTransform.localPosition; hitParticle.transform.parent = spawnerTransform; }