// 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); }
//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); }