Exemple #1
0
    void OnTriggerEnter2D(Collider2D other)
    {
        FishCatcher fc = other.gameObject.GetComponentInParent <FishCatcher>();

        if (fc != null && fc.fishCaught > 0 && other.gameObject.layer != gameObject.layer)
        {
            fc.LoseFish();
            Invoke("SpawnCaughtFish", 0.1f);
        }
    }
Exemple #2
0
    GameObject FindClosestFish(GameObject[] fish)
    {
        GameObject result = null;
        float      distance;
        float      minimumDistance = Mathf.Infinity;

        foreach (GameObject fishInstance in fish)
        {
            if (fishInstance == null)
            {
                break;
            }
            FishCatcher fishCatcher = fishInstance.GetComponentInParent <FishCatcher>();
            if (fishCatcher != null && fishCatcher.fishCaught > 0)
            {
                if (fishCatcher.gameObject.layer == 9)
                {
                    distance = Mathf.Infinity;
                }
                else
                {
                    distance = Vector3.Distance(fishInstance.transform.position, transform.position) + 1f;
                }
            }
            else
            {
                FishAi fishAi = fishInstance.GetComponent <FishAi>();
                if (fishAi != null && fishAi.targetedBy != null)
                {
                    continue;
                }
                distance = Vector3.Distance(fishInstance.transform.position, transform.position);
            }
            if (distance < minimumDistance)
            {
                minimumDistance = distance;
                result          = fishInstance;
            }
        }
        return(result);
    }