inflearn logo
강의

講義

知識共有

Three.jsで一人称3Dウェブサイトを作成する

物理オブジェクトの動きの実装

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

114

blackstarzck1824

投稿した質問数 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

안녕하세요 한번 더 문의드립니다.

0

39

4

Shade Auto Smooth에 대해

0

39

2

81강 실습 자료 없음

0

35

2

s->x->0 을 했는데 이렇게 변해버렸습니다.

0

48

2

선생님 공유해주신 핸드북에 링크가 몇개 잘못되었어요

0

32

2

62강 실습자료가 잘못되었습니다.

0

30

1

코드 자료는 없는걸까요?

0

64

3

신입 개발자 경력란 작성에 고민이 있습니다.

0

40

2

캐릭터 베지어 커브 따라가게 만들기

1

48

3

강의 목표

0

37

1

강의 노트 위주로 학습

0

41

1

레고블럭 모델링 강의 질문

0

39

2

강의자료 부록 요청(이전 링크 삭제됨)

0

60

2

쿠키 생성 관련

0

68

3

rotation.x 방향

0

41

1

JWT auth error invalid token

0

64

2

경력기술서는 어떤 방향이 좋을까요?

0

53

2

MSA 와 BFF 아키텍처 설명 부분에 대한 문의

1

56

1

eslint.config.js 설정 질문입니다.

0

65

2

7강 흐름 제어 아키택쳐 코드 순서

1

54

1

수업자료 어디서 찾아볼 수 있나요?

0

48

2

함수 강의의 정답.. 어떤가요?

0

42

1

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

0

277

1

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

0

332

2