UNPKG

@threlte/extras

Version:

Utilities, abstractions and plugins for your Threlte apps

30 lines (29 loc) 1.07 kB
import { useThrelte } from '@threlte/core'; export const useEnvironment = (scene, environment, isBackground, isEnvironment) => { const { invalidate } = useThrelte(); $effect(() => { const currentEnvironment = environment(); if (currentEnvironment === undefined) return; const currentScene = scene(); const { background: lastBackground, environment: lastEnvironment } = currentScene; const currentIsBackground = isBackground(); const currentIsEnvironment = isEnvironment(); if (currentIsEnvironment) { currentScene.environment = currentEnvironment; } if (currentIsBackground) { currentScene.background = currentEnvironment; } invalidate(); return () => { if (currentIsEnvironment) { currentScene.environment = lastEnvironment; } if (currentIsBackground) { currentScene.background = lastBackground; } invalidate(); }; }); };