Esempio n. 1
0
    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);
        }
    }
Esempio n. 2
0
    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);
    }