由于加载或卸载附加场景导致当前加载的光探针数量发生变化时,会调用此事件。
对于使用光探针数据渲染的游戏对象,Unity 使用四面体空间映射来计算在渲染每个游戏对象时根据对象的位置使用哪些光探针。
当添加新的光探针数据或删除现有光探针数据时,需要重新计算光探针位置之间的四面体空间映射,以考虑已加载的附加光探针,或考虑已卸载场景所属的已删除探针。
当您加载或卸载包含光探针数据的场景时,会触发此 needsRetetrahedralization
事件,从而使您能够决定何时调用 LightProbes.Tetrahedralize 或 LightProbes.TetrahedralizeAsync 来重新四面体化光探针数据。
由于光探针数据被视为在场景中引用的外部数据,但不是场景本身的一部分,因此它是异步加载的,有时可能会在场景加载/卸载操作似乎已完成之后加载。
因此,如果您正在加载或卸载包含光探针数据的场景,则应使用此事件来确定何时重新四面体化,而不是依赖于 SceneManager.sceneLoaded 事件,因为当调用 sceneLoaded 事件时,新的光探针数据可能尚未更新。
此外,如果您正在加载多个场景,每个场景都包含其他光探针数据,则应等待相应的 needsRetetrahedralization
事件数量,然后再对光探针数据进行重新四面体化,因为在每次事件后重新计算它既费时又没有必要。例如,如果您要加载五个每个都包含光探针数据的附加场景,则应等待所有五个 needsRetetrahedralization 事件,然后再调用 LightProbes.Tetrahedralize 或 LightProbes.TetrahedralizeAsync。