Unity 6.3
0 онлайн 35 гостей 3 в системе
Вход

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