コード例 #1
0
ファイル: ZoneScanRay.cs プロジェクト: fbigand/UV-Projet-P2
    // une methode pour calculer les rayons d'une zone latérale
    public static float ComputeRaySide(StoreRay ray, ZoneScanRay zone)
    {
        if (ray.ray.collider.CompareTag("PickUp"))
        {
            return(0);
        }

        // plus c'est proche plus ça donne des points de danger
        float x = ray.ray.distance;

        //float angleImportance = Mathf.Clamp(Mathf.Abs(ray.angle), 0, 1.5f);
        float danger = Mathf.Clamp((-0.8f * x + 4f) / (x * 10f), 0f, 50f);

        //plus l'angle est droit devant plus ça donne des points danger

        /*x = Mathf.Abs(ray.angle);
         * float facteur = Mathf.Clamp(-4 * x - 3, 1, 3);
         *
         * danger *= facteur;*/

        return(danger);
    }
コード例 #2
0
ファイル: ZoneScanRay.cs プロジェクト: fbigand/UV-Projet-P2
    //une methode pour calculer le danger des rayons d'une zone devant
    public static float ComputeRayFront(StoreRay ray, ZoneScanRay zone)
    {
        float danger = 0;

        if (ray.ray.collider.CompareTag("PickUp"))
        {
            return(0);
        }
        else if (ray.ray.collider.CompareTag("Player") && ray.ray.distance < 3 && Mathf.Abs(ray.angle) < 0.1f)
        {
            zone.isFrontOfEnnemy = true;
        }

        // plus c'est proche plus ça donne des points de danger
        float x             = ray.ray.distance;
        float importanceRay = Mathf.Clamp(-36 * Mathf.Abs(ray.angle) + 10, 1, 10);

        danger += (3f + importanceRay) * Mathf.Clamp((-3f * x + 6) / (x * 8f), 0, 50);


        return(danger);
    }