language:unity:4-physics
RigidBody
- Physic 영향을 받게끔 한다.
- 리지드바디를 넣으면, 힘이나 토크(회전력)의 영향을 받아 움직이게끔 할 수 있다.
- 중력의 영향을 받게 된다.
Component 파라미터
Mass
단위는 임의로 결정. 리지드바디간 100배 차이가 나지 않게 설정하는 것이 추천한다네. 어떤 요소에 영향을 주는 걸까..
Drag
- 공기에 대한 저항력. 0은 영향을 받지 않는다.
- 기본 중력 설정에서 10정도 주면 아주 느리게 떨어진다.
- 당연히 Mass는 떨어지는 속도에 영향을 주지 않는다.
Angular Drag
- 회전력에 대한 감소율. 0은 영향을 받지 않는다. 그렇다고 0 이라고해서 멈추지 않는 것인 아니다. 숫자가 클수록 영향을 많이 받는다.
테스트
- Physical Collider를 추가하고 Material (Physical Material)을 Bouncy로 설정.
- 임의의 오브젝트를 살짝 기울인 상태로
- Angular Drag의 값을 0 ~ 20까지
프로그래밍
- Velocity : 벡터의 길이가 현재 가해진 힘의 크기.
// 샘플, Velocity가 1보다 크면 힘이 가해진 상태이므로 붉은색으로 표시 if(rigidbody.velocity.magnitude > 1) gameObject.renderer.material.color = impactColor; //아니면 그냥 표시 else gameObject.renderer.material.color = stableColor;
최적화
Physics
- 충돌체가 많은 경우 + 메쉬충돌체를 써야하는 경우,
- 충돌용 메쉬는 아주 최소한의 삼각형만 갖는 버젼을 따로 만들어서 쓰면
- 확실하게 효과 있다
- 충돌용 메쉬는 작으면서 복잡한 것에, 단순한 체크용 메쉬를 쓰면 효과가 좋다.
- 큰 메쉬에는 되려 효과가 없다.
TimeManager
- Fixed Timestep : 기본값 0.02 에서 조금 더 늘린다. 0.03정도.. 늘릴 수록 물린 연산 횟수가 줄어든다.
- 0.025도 인식된다.
- 이 값을 변경하는 경우, 움직이는 중요 오브젝트(RigidBody를 사용하는)에 인터폴레이션을 추가하면 좀 더 낫다
language/unity/4-physics.txt · 마지막으로 수정됨: 2024/04/23 22:44 저자 127.0.0.1