inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

Three.js로 1인칭 3D 웹사이트 만들기

터치 감도 조정하기

개발자도구에서 모바일 버전으로 테스트할때

235

준규

작성한 질문수 6

0

image.png

 

사진처럼 터치를 하고 드래그를 하면 카메라가 돌아가는것이 아니라 웹 화면 자체가 끌려 가는데..

html, canvas, body 에 touch-action 옵션을 none으로도 줘보고

touch 이벤트들에 preventDefault도 줘보고 했지만 해결이 되질 않습니다..

 

터치 드래그를 하면 moveMentX와 moveMentY의 값은 잘 출력되는데 카메라가 회전을 하지 않습니다.

데스크탑에서 mousemove는 제대로 카메라가 돌아가는데, 모바일버전에서 touchmove는 카메라가 돌아가질 않네요.

javascript 인터랙티브-웹 포트폴리오 three.js 3d

답변 1

0

인프런 AI 인턴

안녕하세요, 인프런 AI 인턴입니다.

모바일 환경에서 touchmove 이벤트가 예상대로 작동하지 않아 문제를 겪고 계시군요. 이는 모바일 터치 이벤트와 마우스 이벤트 간의 차이에서 기인할 수 있습니다. 다음은 문제 해결에 도움이 될 수 있는 몇 가지 사항입니다:

  1. touch-action 속성:

    • css에서 touch-actionnone으로 설정하여 기본 동작을 막으려 했으나, 브라우저에 따라 다르게 작동할 수 있습니다. 브라우저 호환성을 고려하여 추가 설정을 해보시기 바랍니다.
  2. 이벤트 리스너 설정:

    • touchmove 이벤트 핸들러를 설정할 때는 옵션 객체에서 { passive: false }를 명시적으로 설정하여 이벤트 핸들러가 preventDefault() 호출을 할 수 있도록 합니다. 이를 통해 기본 스크롤 동작을 방지할 수 있습니다.
   canvasElement.addEventListener('touchmove', function(e) {
       e.preventDefault();
       // 카메라 회전 로직
   }, { passive: false });
  1. 터치와 마우스 이벤트 분리:

    • 모바일 환경에서의 터치 이벤트와 데스크탑의 마우스 이벤트는 별개로 처리해야 합니다. 터치이벤트에서 멀티터치 등을 고려해야 할 수도 있습니다.
  2. 카메라 회전 로직 확인:

    • touchmove로 카메라 회전 로직을 제어할 때, 변화 값이 모바일 환경에 최적화되어 있는지 확인해 보세요. 모바일에서는 손가락의 미세한 움직임도 감지하기 때문에 감도 조절이 필요할 수 있습니다.

관련해서는 아래 유사한 질문과 답변을 참조하시면 도움이 될 것입니다:

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

안녕하세요, Oracle Cloud Free Tier 가입 과정에서 계속 오류가 발생해 문의드립니다.

1

17

2

교재(3쇄)와 강의 내용 문의

0

17

2

회사마다의 JD 자격 요건에 대해서는 어떻게 접근해야 좋나요?

0

27

2

커브 부분만 납작해지는 이유

0

24

2

섹션2번 부분 강의 화면이 잘 못된것 같아서 문의합니다.

0

23

1

call stack 표현이 잘못표현된것이 아닌가요?

0

55

2

강의 자료 위치

1

39

1

figma 파일을 받을 수가 없어요

0

48

1

React 와 Virtual DOM 의 이야기 영상 실행이 안됩니다.

0

34

1

다운로드 연결이 되지 않을 때는 어떻게 해야할까요?

0

36

1

우드 탁상시계(2) 네트워크 서피스 2분 27초 질문 있습니다.

0

34

2

커서, 클로드, 피그마는 모두 유료버전을 사용해야하나요?

0

54

1

일반 강의와 차이점?

1

52

1

카카오 친구 확인 방법

0

25

0

수강완료 후 문의 드립니다.

1

47

2

!= 연산자의 역할

0

35

1

중요하진 않지만 설명하신부분에서 안된부분..

1

34

1

강의 듣는 순서가 어떻게 되나요?

0

48

1

안녕하세요, 강좌 5의 피그마 파일은 어디서 볼 수 있나요?

0

65

2

stopPropagation()에 대해서 질문 있습니다.

0

49

2

12.13) 하단 여백 스타일링 관련 질문 드립니다.

0

63

2

27강 Context내 RSC 사용 관련 문의

0

80

3

desk 가 밑으로 떨어졌을 때, "y 값이 문자열"에 대한 내용입니다.

0

111

0

반발력을 0으로 해도 계속 튕겨져나갑니다..ㅜ

0

319

2