public void OnEnable( ) { Lightmapping.RequestLightsDelegate testDel = (Light [] requests, Unity.Collections.NativeArray <LightDataGI> lightsOutput) => { DirectionalLight dLight = new DirectionalLight( ); PointLight point = new PointLight( ); SpotLight spot = new SpotLight( ); RectangleLight rect = new RectangleLight( ); LightDataGI ld = new LightDataGI( ); for (int i = 0; i < requests.Length; i++) { Light l = requests [i]; switch (l.type) { case UnityEngine.LightType.Directional: LightmapperUtils.Extract(l, ref dLight); ld.Init(ref dLight); break; case UnityEngine.LightType.Point: LightmapperUtils.Extract(l, ref point); ld.Init(ref point); break; case UnityEngine.LightType.Spot: LightmapperUtils.Extract(l, ref spot); ld.Init(ref spot); break; case UnityEngine.LightType.Area: LightmapperUtils.Extract(l, ref rect); ld.Init(ref rect); break; default: ld.InitNoBake(l.GetInstanceID( )); break; } ld.falloff = FalloffType.InverseSquared; lightsOutput [i] = ld; } }; Lightmapping.SetDelegate(testDel); }
public static void ResetDelegate() { Lightmapping.s_RequestLightsDelegate = Lightmapping.s_DefaultDelegate; }
public static void SetDelegate(Lightmapping.RequestLightsDelegate del) { Lightmapping.s_RequestLightsDelegate = ((del == null) ? Lightmapping.s_DefaultDelegate : del); }