Lightmapping.SetDelegate
Экспериментальный: это API экспериментально и может быть изменено или удалено в будущем.
Declaration
public static void SetDelegate(Experimental.GlobalIllumination.Lightmapping.RequestLightsDelegate del);Описание
Делегат для преобразования списка светильников в структуры LightDataGI для backends light baking.
Это нужно SRP, чтобы настроить или переопределить то, как данные освещения передаются и обрабатываются бэкендами запекания Global Illumination. Так SRP может менять интенсивность, цвет, отбрасывание теней, затухание и другие параметры под свои задачи и получать нужный результат освещения. Делегат необходимо сбрасывать вызовом ResetDelegate. Пример ниже показывает, как задать делегат — например, описанный в LightMode.
using Unity.Collections; using UnityEditor; using UnityEngine; using UnityEngine.Experimental.GlobalIllumination; using Lightmapping = UnityEngine.Experimental.GlobalIllumination.Lightmapping;
internal static class MyLightBakingUtils { [MenuItem("Tools/Set delegate")] static void SetDelegate() { Lightmapping.SetDelegate(BakeOnlyDiscLightsDelegate); }
private static readonly Lightmapping.RequestLightsDelegate BakeOnlyDiscLightsDelegate = (Light[] requests, NativeArray<LightDataGI> lightsOutput) => { // ... }; }