작성
·
180
답변 1
2
Raycaster 섹션 진도를 나가셨는지 모르겠는데.. pointerlock 상태에서는 마우스를 움직이는게 아니기 때문에, 클릭했을 때 화면 중앙으로 Raycaster로 광선을 쏘아서 처리해주면 된답니다. 그렇게 하면 화면 중앙에 있는 메쉬를 클릭한 효과가 발생하겠지요?
즉, 아래와 같이 해주면 카메라로부터 화면 중앙으로 광선을 쏘기 때문에 화면 가운데 위치한 메쉬를 체크할 수 있습니다.
raycaster.setFromCamera(new Vector2(), camera);
화면 중앙의 + 표시는 무조건 화면 가운데부분을 클릭한다는걸 식별하기 쉽게 장식을 붙여준건데요, 그냥 html div와 css로 화면 가운데에 띄워준 것으로, three.js랑은 직접 관련은 없답니다. + 모양 div 엘리먼트의 css의 display 속성값을 조정해서 보였다 안보였다 처리를 해준건데요,
lock 이벤트 발생 시에는 보여야 하니 display: block;
unlock 이벤트 발생 시에는 안보여야 하니 display: none;
이런 식으로 하면 되겠지요~