inflearn logo
강의

講義

知識共有

[Unity 6] 実践で学ぶゲーム制作 2D Platformer

02-03 壁 摩擦力 設定

02-03 벽 마찰력 설정 material 적용 부분

12

1127sr

投稿した質問数 2

0

안녕하세요, 강의를 수강하면서 열심히 따라 플랫포머 게임을 만들고 있습니다.


플레이어가 벽면에 붙는 걸 방지하기 위해 Friction을 0으로 설정한 material을 Tilemap의 Composite Collider 2D에 적용하셨는데 그 이유가 궁금합니다.


타일의 종류는 계속 추가될건데, Player의 Collider가 아닌 tilemap에 추가하는 이유가 궁금합니다. Player에 적용하면 다른 종류의 타일을 추가해도 매번 material 적용 없이 해결되는건 아닌가 궁금해서요

C# unity

回答 1

0

unitynote

안녕하세요.

말씀하신 것처럼 Physics Material 2D를 Player의 Collider에 적용하는 방법도 가능합니다.

다만 Player에 Friction이 0인 Material을 적용하면 플레이어가 접촉하는 모든 지형에 동일한 마찰 특성이 적용됩니다. 즉, 벽뿐만 아니라 일반 바닥이나 이후에 추가되는 다른 종류의 지형에서도 플레이어의 마찰을 동일하게 처리하게 됩니다.


지형마다 서로 다른 특성을 줄 수 있도록 Player가 아닌 Tilemap의 Collider에 Material을 적용했습니다.

특히 여러 타일이 하나의 Tilemap과 Composite Collider 2D로 구성되어 있다면 타일이 추가될 때마다 Physics Material을 다시 설정할 필요는 없습니다. 해당 Composite Collider 2D에 한 번 설정해 두면 그 Collider에 포함된 타일 전체에 적용됩니다.

반대로 게임의 모든 지형에서 플레이어의 마찰을 항상 0으로 사용할 계획이라면 Player Collider에 Physics Material을 적용하는 것도 충분히 가능한 방법입니다.


그리고 강의에서는 초급자를 대상으로 하기 때문에 Rigidbody2D와 Physics Material 2D를 이용해 비교적 간단하게 벽에 달라붙는 현상을 처리했으며, 조금 더 세밀하게 캐릭터를 제어해야 하는 경우에는 Physics2D.Raycast 등을 이용해 플레이어의 주변을 검사하여

"현재 벽에 닿아 있는지",
"바닥에 닿아 있는지",
"어떤 종류의 지형과 접촉하고 있는지"

등을 판별한 뒤, 충돌한 오브젝트의 Layer나 별도의 컴포넌트 등을 기준으로 이동 로직을 다르게 처리하는 방법도 많이 사용합니다.

예를 들어 일반 벽에서는 자연스럽게 떨어지고, 특정 벽에서는 Wall Slide나 Wall Jump가 가능하도록 만드는 식으로 보다 세밀한 제어가 가능합니다.

02-01 이동 발판 (Platform_00_Moving) 질문

0

119

3

Rigidbody2D의 linearVelocity 제어

0

255

3

강의 01-02에서 프리팹 렌더링 오류

0

189

2

02-05 레벨시작(마지막 강의)에서 SelectLevelController오브젝트의 SelectLevelController 컴포넌트조작

0

146

1

간혹 벽의 콜라이더를 뚫고 빠지는 경우

0

220

1

02-07 별아이템을 bool[] 로 한 이유가 궁금해요.

0

192

1

02-05 플레이어 원거리공격. 혹시 저처럼 공이 빨리 사라지는 경우

0

119

1

02-02 플레이어 체력에서 if(current >1)을 if(current > 0) 로...

0

127

1

03-01 Hidden Tilmap에서

0

130

2

02-04 점프발판 Animation 뷰에서 이미지 나오게 하는 방법이 궁금해요.

0

167

1

02-03 추락하는 발판에서 isKinematic = true;로 하면, 중력영향 안받으니

0

212

2

02-03 추락하는 발판의 Mathf.PingPong 메소드 설명문 수정해야 겠어요.

0

230

2

02-02 플레이어와 발판: PlatformBase 상속클래스 어태치문제

0

195

2

01-04. 부서지는 타일에서 첫번째타일

0

210

3

01-03 부서지지 않고 튀는 타일 충돌처리 부분 코드 바뀌어야 될 것 같습니다.

0

181

2

03-04 배경화면 스크롤에서 MainCamera의 depth를 수정해야 되지 않나요?

0

117

2

jumpBuffer에서 if(IsGrounded) 설정이 있어야 될 것 같아서 질문드립니다.

0

220

3

플렛포머 게임 3 - 1 강의 질문

0

217

1

Platformer Game 강의 관련 질문

0

287

2

플레이어 캐릭터에 Renderer를 추가하는 이유가 있을까요?

0

294

1

선생님 이 강의를 토대로 개발하고 있는데

0

232

1

통과하는 발판(OneWay)을 움직이는 발판을 적용할 방법은 없나요

0

294

2

적에게 닿은상태로 있을때

0

257

1

강의자료 다운로드가 딱 53~54MB 정도에서 멈춥니다.

0

357

2