dat.gui
438
작성한 질문수 1
react에 three.js를 따라하고 있습니다. 그런데 다른건 다 잘 되는데 dat.GUI는 똑같이 따라 하니 안되네요 혹시 다른 방법을 더 추가 해야 할까여
import * as THREE from 'three';
import dat from 'dat.gui';
export default function example() {
const scene = new THREE.Scene();
const renderer = new THREE.WebGLRenderer({
antialias : true
});
renderer.setSize(window.innerWidth, window.innerHeight);
renderer.setPixelRatio(window.devicePixelRatio>=1 ? 2 : 1);
document.body.innerHTML="";
document.body.appendChild(renderer.domElement);
// Camera
const camera = new THREE.PerspectiveCamera(
75,
window.innerWidth / window.innerHeight,
0.1,
1000
);
camera.position.y = 1;
camera.position.z = 5;
scene.add(camera);
// Light
const ambientLight = new THREE.AmbientLight('white', 0.5);
scene.add(ambientLight);
const directionalLight = new THREE.DirectionalLight('white', 1);
directionalLight.position.x = 1;
directionalLight.position.z = 2;
scene.add(directionalLight);
// Mesh
const geometry = new THREE.BoxGeometry(1, 1, 1);
const material = new THREE.MeshStandardMaterial({
color: 'seagreen'
});
const mesh = new THREE.Mesh(geometry, material);
scene.add(mesh);
// Dat GUI
const gui = new dat.GUI({ name: "My GUI" });
console.log(gui)
gui.add(mesh.position, 'y', -5, 5, 0.01).name('큐브 Y');
gui.add(camera.position, 'x', -10, 10, 0.01).name('카메라 X');
camera.lookAt(mesh.position);
// 그리기
const clock = new THREE.Clock();
function draw() {
const time = clock.getElapsedTime();
mesh.rotation.y = time;
camera.lookAt(mesh.position);
renderer.render(scene, camera);
renderer.setAnimationLoop(draw);
}
function setSize() {
camera.aspect = window.innerWidth / window.innerHeight;
camera.updateProjectionMatrix();
renderer.setSize(window.innerWidth, window.innerHeight);
renderer.render(scene, camera);
}
// 이벤트
window.addEventListener('resize', setSize);
draw();
}
답변 1
0
안녕하세요, 인프런 AI 인턴이에요. dat.GUI 사용 시 문제가 발생하는 것 같네요. 첫 번째로 확인해야 할 점은 dat.GUI의 버전입니다. 현재 사용하고 계신 버전이 React와 호환되는지 확인해보세요. React와 호환되지 않는다면, React에서 다른 상태 관리 라이브러리를 사용해야 할 수도 있습니다.
두 번째로 확인해야 할 점은 import 구문입니다. dat.GUI를 import할 때, 다음과 같이 변경해 보세요.
import dat from 'dat.gui/build/dat.gui.module';
위와 같이 변경하고 다시 시도해보세요.
만약 이렇게 변경해도 문제가 해결되지 않는다면, 해당 문제에 대한 에러 메시지나 콘솔 로그를 공유해주시면 더 자세한 도움을 드릴 수 있을 것 같아요.
box3.position.x 위치
0
38
1
리액트/next.js와 같이 사용하는 강의 계획은 없으신가요?
0
80
1
소스코드 파일이 강의랑 같나요?
0
118
2
materials 배열에 있는 top, bottom ... 들에 대해서
0
118
0
gltf 포맷 사용
0
243
1
점프 애니메이션 stop
0
127
2
사양에 따른 다른 결과
0
112
1
중복 질문 삭제
0
160
1
혹시 이 빛의 범위를 조절할 수 있는 방법이 있나요?
0
124
1
gltf.scene.children 이 없는데도 모델이 화면에 떠요
0
101
2
GLF파일 export한 후에 three.js에서 렌더링 된 모델에는 텍스처 적용이 안되어있습니다..!
0
160
1
일반 유리, 강화 유리 강의에서 Glass 객체의 position X를 -1, 1로 설정한 이유를 모르겠어요
0
77
0
그림자가 다르게 표현됩니다
0
138
1
setAnimationLoop 위치가...
0
99
1
얼굴 그릴 때 붓이 깔끔하게 칠해지지 않고 얼룩덜룩해요
0
135
1
블렌더 texture paint 시 미러모드
0
163
0
DragControls의 인자값을 바꾸지 않았는데 에러가 안떠요!
0
104
1
blender 에서 색칠하기 편 Texter paint slot추가없음
0
966
2
fin 버전도 그냥 실행이 안돼요
0
289
2
자바스크립트 실행이 안되는 것 같아요
0
379
1
모니터 해상도에 따라 mesh의 크기가 변할 수 있나요?
0
238
1
live server와 localhost:8080
0
345
1
material에 canvas 를 texture 로 넣는방법이 궁금해요
0
270
1
모바일 조이스틱은 어떻게 만들 수 있을까요?
0
208
1





