Physics Material / SerializedField

정제로·2023년 9월 4일
0

Unity

목록 보기
7/19

Physics Material / 2D

Physics Material


3D에서의 물리 재질을 의미한다.

Friction

Friction : 마찰력
Unity에서는 콜라이더와의 마찰력이다

Dynamic

Dynamic Friction : 동적 마찰력
움직이는 동안의 마찰력이다.

0이면, 얼음위의 스케이트처럼 슝~ 하며 지나다닐거고,
숫자가 커질수록, 움직이는 물체를 멈추게 할 것이다.

Static

Static Friction : 정적 마찰력
멈춰있는 동안의 마찰력이다.

동적과 마찬가지로, 0이면 얼음, 숫자가 커질수록 지면과 딱 맞붙어 있을것이다.

Bounciness

Bounciness : 탄력성
값이 높을수록 에너지 손실없이 잘 튕기게 된다.
0이면 콜라이더 충돌시 에너지 손실 100%되어, 바로 콜라이더와 딱 붙게된다.

Combine Priority


보면 여러 우선순위가 있다.

Average < Minimum < Multiply < Maximum 순이다.
예를들어,

Friction Combine은 average고
Bounce Combine은 Maximum이면,
Maximum으로 계산된다.

Friction Combine

두 물체 충돌 시 마찰 계산 방식

Bounce Combine

두 물체 충돌 시 탄성 계산 방식

Physics Material 2D


동일하지만, 단순 마찰과 탄성만 존재



SerializedField

간단하게 말하자면,
private으로 숨겨놓은 변수를 외부에서 접근 가능하게 해주려고 하는거다.

여러 블로그를 봐보면, 대부분 public은 지양하고 private는 지향하라고 했을것이다.

근데 private으로 변수를 설정해놓으면 인스펙터창에서 변수를 조정하고 싶을때 못할것 아니냐!

예를들어, 플레이어의 적절한 속도를 찾아내고 싶다고 하자.
그러면 public일때는 인스펙터창에서 계속 변경하며 쉽게 찾을 수 있지만,
private일때는 스크립트랑 게임뷰랑 왔다갔다하며 찾아야하니... 힘들거 아닌가...

그럴때 [SerializedField]를 사용한다.
즉! 인스펙터 창에서 해당 변수 접근 가능하다!

사실...

Serialization은 직렬화라는 의미이다.

private으로 선언된 변수를 직렬화 해서 컴퓨터에 오래도록 유지하게 한다..
라는 의미이다

profile
초보자입니다.. 잘못된 정보, 달게 받겠습니다..

0개의 댓글