inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

물리 객체의 움직임 구현

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

122

김찬기

작성한 질문수 3

0

우선 원인은...

MeshObject 클래스 속성 중 differenceY 의 값에 OR 연산자를 사용., main.js 에서 ground 변수에 '0' 문자열 값을 할당해서 그런데요.

ground 는 y 속성값을 할당하지 않았기 때문에 MeshObject 클래스에서 info.y 는 undefined 이고, this.y 는 "this.height / 2 + this.differenceY" 의 계산이 적용되서 " 0.1 / 2 + '0' " 즉, 문자열 '0.20' 이 출력됩니다.

산술 연산자 '+' 가 들어가게되면, 그 계산식의 결과값은 반드시 문자열이 나옵니다.

x, y, z, differenceY 는 모두 좌표와 연관된 값으로, 모두 숫자 데이터 타입을 할당받아야 하는 일관성이 필요한데 ground, floor 에서만 differenceY 가 문자열을 받아 발생한 이슈입니다.

강의를 들어보던 중 강사님께서 처음에 숫자 0 을 사용하셨고, this.differenceY 속성에 값을 할당할때 OR 연산자를 쓰심으로인해 숫자 0 이 null/undefined 로 인식되는 것 때문에 문자열로 바꾸신거 같더라구요.

조금 더 정확하게 하자면, OR 연산자가 아닌 ?? 연산자를 사용해 숫자 0을 값 그대로 사용할 수 있도록 바꾸고 ground 에도 문자열 '0' 이 아닌 숫자 0 을 넣어주면 될것같습니다.

x, y, z 에 곱하기 1을 하는 추가코드는 필요없어집니다.

 

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

답변 0

4강 카드뉴스 자동화 자료

0

3

0

라이브 강의 영상 녹화본이 있을까요?

0

19

0

인증이 늦었습니다ㅜㅜ 확인부탁드립니다

0

32

1

스웨거 접속이 안되는데 확인 부탁드립니다.

0

26

1

뼈의 local location이 무엇인지 궁금합니다.

0

37

2

설명이 잘못된거같습니다.

1

44

2

뼈의 회전에 대해서 궁금한 점이 있습니다.

0

41

1

MergeEdge가 안됩니다ㅠㅠ

0

38

2

수강자료 다운로드 관련 문의

0

65

2

선택정렬 이해하기 & 구현하기

0

40

1

mission12-01 guide.md파일 누락

0

48

2

자료집 관련

0

45

2

13. (App 2) 기본기 훈련 에서

0

64

1

MCH 와 관련하여 질문이 있습니다.

0

55

1

쌤 혹시 다음에 출시할 예정된 강의가 있으신가요?

0

48

1

챌린지 시작일 문의

0

62

0

2. 어떤 도구를 사용하는 것이 가장 유리할까? 강의 중

0

51

1

11차시 Antigravity IDE 설치 후

0

48

1

터지는 필렛엣지 '이걸' 이용해보자! 편 질문

0

47

2

처음 에이전트 설정을 잘못 했을 경우 수정 하는 방법

0

53

1

5,6,7,8 내용이 없어요

0

53

1

ThemeProvider를 이용해서 NextThemeProvider를 따로 생성하여 Layout.tsx에 적용하는 이유는 뭘까요?

0

58

1

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

0

343

1

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

0

343

2