From 49f8cc7faa77d12b7e14837ca26849bc21f043b5 Mon Sep 17 00:00:00 2001 From: takuma-hmng8 Date: 2025年3月18日 11:10:42 +0900 Subject: [PATCH] update --- app/tests/useNoise/Playground.tsx | 2 +- utils/useGUI.ts | 30 ++++++++++++++++++------------ 2 files changed, 19 insertions(+), 13 deletions(-) diff --git a/app/tests/useNoise/Playground.tsx b/app/tests/useNoise/Playground.tsx index 4ff5d97e..029815ef 100644 --- a/app/tests/useNoise/Playground.tsx +++ b/app/tests/useNoise/Playground.tsx @@ -27,7 +27,7 @@ export const Playground = () => { const fluid = useFluid({ size, - dpr: 0.25, + dpr: 0.24, }); const { updateBasicFxGUI, setBasicFxGUIValues } = useBasicFxGUI( diff --git a/utils/useGUI.ts b/utils/useGUI.ts index 37c04b4d..d8d28943 100644 --- a/utils/useGUI.ts +++ b/utils/useGUI.ts @@ -1,33 +1,39 @@ -import { useCallback, useEffect, useState, RefObject } from "react"; +import { useCallback, useEffect, RefObject, useRef } from "react"; import GUI from "lil-gui"; -export const useGUI = (setupGUI: (gui: GUI) => void, title?: string, container?: RefObject) => { - const [gui, setGUIState] = useState(null); +export const useGUI = ( + setupGUI: (gui: GUI) => void, + title?: string, + container?: RefObject +) => { + const guiRef = useRef(null); useEffect(() => { - if (!gui) { + if (!guiRef.current) { const newGui = new GUI({ closeFolders: true, width: 240, title, autoPlace: container?.current ? false : true, - container: container?.current || undefined, + container: container?.current || undefined, }); - setGUIState(newGui); + guiRef.current = newGui; setupGUI(newGui); } + return () => { - if (gui) { - gui?.destroy(); - setGUIState(null); + if (guiRef.current) { + guiRef.current.destroy(); + guiRef.current = null; } }; - }, [gui, setupGUI, title, container]); + }, [setupGUI, title, container]); const updateDisplays = useCallback(() => { - gui?.folders.forEach((folder) => + guiRef.current?.folders.forEach((folder) => folder.controllers.forEach((controller) => controller.updateDisplay()) ); - }, [gui]); + }, []); + return updateDisplays; };

AltStyle によって変換されたページ (->オリジナル) /