Ejemplo n.º 1
0
 static float lightFactorBasedOnDistanceAndLightRange(float distance, float lightRange, AttenuationDelegate attenuationFunction)
 {
     if (distance > lightRange) {
         return 0.0f;
     } else {
         return attenuationFunction(distance, lightRange);
     }
 }
Ejemplo n.º 2
0
 public static float GetAccumulatedLightFactor(GameObject obj, AttenuationDelegate attenuationFunction)
 {
     float lightFactor = 0.0f;
     foreach (LightSourceBehaviour lightSource in LightSourceBehaviour.lightSources) {
         float distance = distanceOnXZPlane(obj.transform.position, lightSource.transform.position);
         lightFactor += lightFactorBasedOnDistanceAndLightRange(distance, lightSource.Range, attenuationFunction);
     }
     return Mathf.Min(lightFactor, 1.0f);
 }