IEnumerator InitializePool() { if (!isObjectPooled) { UIGameController.Instance.ShowNotificationMessage(LanguageManager.Instance.GetMessage("LOA0012")); yield return(new WaitForSeconds(0.1f)); foodPool = FoodObjectPooling.Instance; fishPool = FishObjectPooling.Instance; predatorPool = PredatorObjectPooling.Instance; isObjectPooled = true; } yield return(null); GameController.Instance.StartListeningForSocketUpdates(); }
IEnumerator DeathAnimation(FishController removeFish, FishObjectPooling fishPool) { Vector3 deathScale = fishHead.transform.lossyScale; float increment = 0.04f; for (int i = 0; i < count / 2; i++) { gameObject.transform.localScale += new Vector3(increment, increment); yield return(new WaitForSeconds(delay / 2)); } float decrement = 0.18f; for (int i = 0; i < count; i++) { gameObject.transform.localScale -= new Vector3(decrement, decrement); yield return(new WaitForSeconds(delay)); } gameObject.transform.localScale = new Vector3(0, 0); //Player dead Animation GameObject deadEffect = (GameObject)Resources.Load("prefab/Death Prefab", typeof(GameObject)); GameObject death = Instantiate(deadEffect) as GameObject; //calc scale Vector3 newScale = new Vector3(death.transform.localScale.x * deathScale.x, death.transform.localScale.y * deathScale.y); death.transform.localScale = newScale; death.transform.position = fishHead.transform.position; yield return(new WaitForSeconds(2f)); Destroy(death); gameObject.transform.localScale = new Vector3(1, 1, 1); fishPool.ReturnGameObject(removeFish.localData.fishSkin, removeFish.gameObject); }
public void StartDeathAnimation(FishController removeFish, FishObjectPooling fishPool) { SoundUtility.Instance.PlaySFX(SFXData.SfxDie); StartCoroutine(DeathAnimation(removeFish, fishPool)); }