public GameObject BeginEffect(GameConstants.EffectTypes effectType, Vector3 position, Vector3 lookAt) { GameObject effectObject = null; switch (effectType) { // Get First Child, set parent to gunport (to remove from respective pool) case GameConstants.EffectTypes.Implosion: effectObject = implosionEffectsPool.GetComponentInChildren <ImplosionScript>(true).gameObject; break; case GameConstants.EffectTypes.Explosion: effectObject = explosionEffectsPool.GetComponentInChildren <ExplosionScript>(true).gameObject; break; case GameConstants.EffectTypes.Ignition: effectObject = ignitionEffectsPool.GetComponentInChildren <IgnitionScript>(true).gameObject; break; } //bulletObject.transform.SetParent(worldBullets); //bulletObject.transform.position = gunPort.transform.position; //// Return bullet and let GunPort handle how to fire and set initial velocities //return bulletObject; effectObject.transform.SetParent(worldEffects); effectObject.transform.position = new Vector3(position.x, position.y, position.z); effectObject.transform.up = new Vector3(lookAt.x, lookAt.y, lookAt.z); effectObject.SetActive(true); switch (effectType) { // Get First Child, set parent to gunport (to remove from respective pool) case GameConstants.EffectTypes.Ignition: effectObject.GetComponent <IgnitionScript>().FadeIn(); break; case GameConstants.EffectTypes.Explosion: effectObject.GetComponent <ExplosionScript>().FadeIn(); break; case GameConstants.EffectTypes.Implosion: effectObject.GetComponent <ImplosionScript>().FadeIn(); break; } return(effectObject); }
public void ReturnEffectToPool(GameObject effectToStore, GameConstants.EffectTypes effectType) { if (effectType == GameConstants.EffectTypes.Ignition) { // Return to normal bullet pool effectToStore.transform.SetParent(ignitionEffectsPool); } else if (effectType == GameConstants.EffectTypes.Explosion) { // Return to shotgun bullet pool effectToStore.transform.SetParent(explosionEffectsPool); } else if (effectType == GameConstants.EffectTypes.Implosion) { // Return to laser bullet pool effectToStore.transform.SetParent(implosionEffectsPool); } effectToStore.gameObject.SetActive(false); effectToStore.transform.localScale = Vector3.one; effectToStore.transform.position = Vector3.zero; }