void ClearFish(List <FishData> listFish) { //Clear foods that's not in the data list List <FishController> removeFish = new List <FishController>(); //Loop trough all the registered food. Add to removed list if it's not in the data list for (int i = 0; i < registeredFish.Count; i++) { string id = registeredFish[i].Id; int idx = listFish.FindIndex(x => x.playerID.Equals(id)); //When the registered food is nowhere to found in the list data, register it to be deleted if (idx < 0) { removeFish.Add(registeredFish[i]); } } //Remove all the fish in the remove list for (int i = 0; i < removeFish.Count; i++) { registeredFish.Remove(removeFish[i]); } //Delete the game object for (int i = 0; i < removeFish.Count; i++) { //Remove unused fishes //removeFish[i].firstAssign = true; //Debug.Log ("First Assign = " + removeFish[i].firstAssign); fishPool.ReturnGameObject(removeFish[i].localData.fishSkin, removeFish[i].gameObject); } }
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); }