inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

Three.js로 시작하는 3D 인터랙티브 웹

마인크래프트 스타일 컨트롤

질문있습니다!

296

Duho Kim

작성한 질문수 1

1

안녕하세요. 강의 듣는 중에 질문사항이 있습니다.

마우스로 카메라를 컨트롤 한 후 현재 카메라가 보고있는 방향 기준으로 움직이려면 어떻게 하면 좋을까요?

예로, 카메라 방향이 위에서 밑을 보고있는데, moveForward() 함수는 카메라 방향이 아닌 처음 지정했던 방향의 앞으로 이동합니다.

어떻게 처리하면 좋을까요!?

Three.js 인터랙티브-웹 blender

답변 1

1

1분코딩

walk 함수를 아래와 같이 바꾸어 보세요!
코드에 중복되는 부분이 있는데 이 부분은 자유롭게 리팩토링 해보시면 되겠습니다.
단순하게 알려드리려고 일부러 그대로 부호만 바꾸어 보았어요.
이 내용은 다른 분들께도 도움이 될 것 같아서, 추후에 추가 영상으로 제작해도 좋을 것 같다는 생각이 드네요^^

function walk() {
		if (keyController.keys['KeyW'] || keyController.keys['ArrowUp']) {
			// controls.moveForward(0.02);

			const direction = new THREE.Vector3();
			camera.getWorldDirection(direction);
			
			const direction2 = new THREE.Vector3();
			direction2.x = direction.x * 0.03;
			direction2.y = direction.y * 0.03;
			direction2.z = direction.z * 0.03;
			camera.position.add(direction2);
		}
		if (keyController.keys['KeyS'] || keyController.keys['ArrowDown']) {
			// controls.moveForward(-0.02);

			const direction = new THREE.Vector3();
			camera.getWorldDirection(direction);
			
			const direction2 = new THREE.Vector3();
			direction2.x = -direction.x * 0.03;
			direction2.y = -direction.y * 0.03;
			direction2.z = -direction.z * 0.03;
			camera.position.add(direction2);
		}
		if (keyController.keys['KeyA'] || keyController.keys['ArrowLeft']) {
			controls.moveRight(-0.02);
		}
		if (keyController.keys['KeyD'] || keyController.keys['ArrowRight']) {
			controls.moveRight(0.02);
		}
	}

0

Duho Kim

 

답변 감사합니다!😁

CDN으로 수업을 들을경우

0

15

1

리액트/next.js와 같이 사용하는 강의 계획은 없으신가요?

0

98

1

소스코드 파일이 강의랑 같나요?

0

138

2

materials 배열에 있는 top, bottom ... 들에 대해서

0

130

0

gltf 포맷 사용

0

260

1

점프 애니메이션 stop

0

143

2

사양에 따른 다른 결과

0

119

1

중복 질문 삭제

0

167

1

혹시 이 빛의 범위를 조절할 수 있는 방법이 있나요?

0

129

1

gltf.scene.children 이 없는데도 모델이 화면에 떠요

0

118

2

GLF파일 export한 후에 three.js에서 렌더링 된 모델에는 텍스처 적용이 안되어있습니다..!

0

180

1

일반 유리, 강화 유리 강의에서 Glass 객체의 position X를 -1, 1로 설정한 이유를 모르겠어요

0

85

0

그림자가 다르게 표현됩니다

0

154

1

setAnimationLoop 위치가...

0

111

1

얼굴 그릴 때 붓이 깔끔하게 칠해지지 않고 얼룩덜룩해요

0

149

1

블렌더 texture paint 시 미러모드

0

172

0

DragControls의 인자값을 바꾸지 않았는데 에러가 안떠요!

0

109

1

blender 에서 색칠하기 편 Texter paint slot추가없음

0

1025

2

fin 버전도 그냥 실행이 안돼요

0

304

2

자바스크립트 실행이 안되는 것 같아요

0

408

1

모니터 해상도에 따라 mesh의 크기가 변할 수 있나요?

0

247

1

live server와 localhost:8080

0

361

1

material에 canvas 를 texture 로 넣는방법이 궁금해요

0

279

1

모바일 조이스틱은 어떻게 만들 수 있을까요?

0

219

1