물리 2D 레퍼런스
Learn about Physics 2D settings.
읽는 시간 7분최근 업데이트: 한 달 전
다음 프로젝트 설정을 통해 Unity 물리 시스템에서 2D 게임 오브젝트의 물리 시뮬레이션 정확도에 대한 제한을 정의하는 물리 2D에 대한 전역 설정을 관리할 수 있습니다. 더 정확한 시뮬레이션을 구현하려면 더 많은 처리 오버헤드가 필요하며, 이 설정을 사용하면 프로젝트에 가장 적합하게 정확도와 성능 간 균형을 맞출 수 있습니다.
Physics 2D 프로젝트 설정 창을 열려면 Edit > Project Settings… > Physics 2D로 이동하여 Physics 2D에 대한 전역 프로젝트 설정을 관리합니다.
참고: 3D 물리의 전역 설정을 관리하려면 물리 프로젝트 설정 레퍼런스 페이지를 참조하십시오.

Physics 2D 인스펙터 설정
General Settings 탭
Physics 2D 관리자 창의 General Settings 탭에서 사용할 수 있는 프로퍼티는 다음과 같습니다.
프로퍼티 | 기능 | |
|---|---|---|
| Gravity | 모든 리지드바디 2D 게임 오브젝트에 적용되는 중력의 정도를 설정합니다. 일반적으로 Y축 음의 방향에 대한 중력만 설정합니다. | |
| Default Material | 개별 콜라이더 2D에 할당된 물리 머티리얼 2D가 없는 경우 사용할 물리 머티리얼 2D에 대한 레퍼런스를 설정합니다. | |
| Velocity Iterations | 물리 시스템이 속도 효과를 결정하기 위해 수행하는 반복 횟수를 설정합니다. 숫자가 클수록 물리 계산이 더 정확해지지만 에디터가 CPU 시간을 더 많이 사용합니다. | |
| Position Iterations | 물리 시스템이 위치 변경을 확인하기 위해 수행하는 반복 횟수를 설정합니다. 숫자가 클수록 물리 계산이 더 정확해지지만 CPU 시간이 더 많이 소요됩니다. | |
| Bounce Threshold | 유연한 충돌의 임곗값을 설정합니다. Unity는 이 임곗값보다 낮은 상대 리니어 속도의 충돌을 비탄성 충돌로 간주하므로 바운스가 발생하지 않습니다. | |
| Max Linear Correction | 제약 해결 시 사용되는 최대 리니어 위치 보정 값입니다(범위: 0.0001-1000000). 이는 오버슈팅을 방지하는 데 도움이 됩니다. | |
| Max Angular Correction | 제약 해결 시 사용되는 최대 각도 보정 값을 설정합니다(범위: 0.0001-1000000). 이는 오버슈팅을 방지하는 데 도움이 됩니다. | |
| Max Translation Speed | 리지드바디 2D 게임 오브젝트의 물리 업데이트 도중의 최고 리니어 속도를 설정합니다. | |
| Max Rotation Speed | 리지드바디 2D 게임 오브젝트의 물리 업데이트 도중의 최고 회전 속도를 설정합니다. | |
| Baumgarte Scale | Unity가 충돌 중복을 해결하는 속도를 결정하는 스케일 요소를 설정합니다. | |
| Baumgarte Time of Impact Scale | Unity가 충돌 시점 중복을 해결하는 속도를 결정하는 스케일 요소를 설정합니다. | |
| Time to Sleep | 리지드바디 2D가 움직임을 멈춘 후 잠자기 모드로 전환될 수 있는 경과 시간(초)을 설정합니다. | |
| Linear Sleep Tolerance | Time to Sleep이 경과한 후 리지드바디 2D가 잠자기 모드로 전환되는 리니어 속도를 설정합니다. | |
| Angular Sleep Tolerance | Time to Sleep이 경과한 후 리지드바디 2D가 잠자기 모드로 전환되는 회전 속도를 설정합니다. | |
| Default Contact Offset | 콜라이더가 실제로 접촉하지 않더라도 접촉 중인 것으로 간주되는 근접 거리 값을 설정합니다. 거리가 | |
| Simulation Mode | Unity가 2D 물리 시뮬레이션을 실행할 때 선택합니다. | |
| Fixed Update | 이 옵션을 선택하면 MonoBehaviour.FixedUpdate가 호출된 직후 Unity에서 물리 시뮬레이션을 실행합니다. | |
| Update | 이 옵션을 선택하면 MonoBehaviour.Update가 호출된 직후 Unity에서 물리 시뮬레이션을 실행합니다. 이 모드를 선택하면 추가 프로퍼티가 표시됩니다. | |
| Script | 이 옵션을 선택하면 Physics2D.Simulate를 통해 물리 시뮬레이션을 수동으로 실행할 수 있습니다. | |
| Simulation Layers | Simulation Mode가 FixedUpdate 또는 Update로 설정되면 Unity가 시뮬레이션하는 레이어를 선택합니다. 기본적으로 Everything 옵션이 선택되어 자동으로 모든 레이어를 선택하고 물리 시뮬레이션에 모든 레이어를 포함합니다. 시뮬레이션에 포함할 특정 레이어를 선택할 수 있으며, Unity는 선택한 레이어의 Rigidbody2D, 조인트, 이펙터, Collider2D 간 접촉만 시뮬레이션합니다. | |
| Queries Hit Triggers | Triggers로 표시된 콜라이더 2D가 물리 쿼리(라인캐스트 또는 레이캐스트)와 교차하는 경우 적중을 반환하도록 하려면 이 옵션을 활성화합니다. 이 옵션은 기본적으로 활성화되어 있습니다. | |
| Queries Start In Colliders | 콜라이더 2D 안에서 시작된 물리 쿼리가 시작된 콜라이더를 감지할 수 있게 하려면 이 옵션을 활성화합니다. | |
| Callbacks On Disable | 접점이 있는 콜라이더가 비활성화된 경우 충돌 콜백을 생성하려면 이 옵션을 활성화합니다. | |
| Reuse Collision Callbacks | 물리 시스템이 모든 충돌 콜백에 단일 Collision2D 인스턴스를 재사용하도록 하려면 이 옵션을 활성화합니다. 이를 비활성화하면 물리 시스템이 각 충돌 콜백에 새로운 Collision2D 인스턴스를 생성합니다. | |
| Auto Sync Transforms | 트랜스폼 변화를 물리 시스템과 자동으로 동기화하려면 이 옵션을 활성화합니다. | |
| Gizmos | 에디터에서 그리고자 하는 물리 2D 기즈모 유형을 선택합니다. 여러 옵션을 선택할 수 있습니다. | |
| Nothing | 이 항목을 선택하면 모든 옵션이 선택 해제됩니다. 물리 2D 기즈모가 그려지지 않습니다. | |
| Everything | 이 항목을 선택하면 모든 옵션이 선택됩니다. | |
| All Colliders | 이 항목을 선택하면 계층 창에서 선택하지 않아도 모든 콜라이더가 그려집니다. | |
| Colliders Outlined | 이 항목을 선택하면 콜라이더에 외곽선이 그려집니다(아웃라인의 컬러는 2D 물리 환경 설정에서 커스터마이즈할 수 있음). | |
| Colliders Filled | 이 항목을 선택하면 모든 콜라이더가 2D 물리 환경 설정에 지정된 채우기 컬러를 사용하여 그려집니다. | |
| Colliders Sleeping | 이 항목을 선택하면 2D 물리 환경 설정에 지정된 Awake 또는 Asleep 컬러를 사용하여 연결된 리지드바디 2D가 잠자기 모드일 때 표시되도록 콜라이더가 그려집니다. | |
| Collider Contacts | 이 항목을 선택하면 콜라이더 접촉이 접점에서 시작하고 접촉 노멀 방향을 향하는 화살표로 표시됩니다. 2D 물리 환경 설정에서 화살표의 접촉 컬러를 지정할 수 있습니다. | |
| Collider Bounds | 이 항목을 선택하면 콜라이더가 생성하는 모든 PhysicsShape2D에 콜라이더 경계가 그려집니다. 이 경계는 AABB(축 정렬 바운딩 박스)입니다. | |
| Multithreading | 멀티스레딩 설정을 조정하려면 확장합니다. 각 프로퍼티에 대한 내용은 멀티스레딩을 참조하십시오. |
시뮬레이션 모드: Update
다음 프로퍼티는 Simulation Mode에서 Update 또는 Script를 선택한 경우에만 표시됩니다.

프로퍼티 | 기능 |
|---|---|
| Use Sub Stepping | 이 프로퍼티를 활성화하면 에디터가 시뮬레이션 단계에서 시뮬레이션 하위 단계를 사용합니다. |
| Use Sub Step Count | 이 프로퍼티를 활성화하면 에디터가 모든 시뮬레이션 하위 단계의 접촉을 계산합니다. 이는 각 하위 단계에 더 정확한 시뮬레이션을 제공하지만 성능이 저하됩니다. 이 프로퍼티를 비활성화하면 첫 번째 시뮬레이션 하위 단계의 접촉만 계산합니다. |
| Max Sub Step Count | 시뮬레이션 하위 단계가 활성화되고 실행 중일 때 프레임당 허용되는 최대 시뮬레이션 하위 단계 수를 설정합니다. 그러면 에디터가 하위 단계에 사용하는 시간도 제한됩니다. |
| Min Sub Step FPS | 에디터가 하위 단계를 사용하기 전에 시뮬레이션 단계에 허용되는 최소 초당 프레임 수를 설정합니다. 현재 프레임 속도가 이 값보다 낮으면 Use Sub Stepping이 활성화된 경우 에디터는 시뮬레이션 하위 단계를 사용합니다. |
멀티스레딩
Multithreading 섹션의 설정에서 C# 잡 시스템을 사용하여 멀티스레드 물리를 설정할 수 있습니다.

확장된 Multithreading 설정
프로퍼티 | 기능 |
|---|---|
| Use Multithreading | 잡 시스템을 사용하여 시뮬레이션 단계를 실행하려면 이 옵션을 활성화합니다. 실행 방법은 나머지 옵션을 사용하여 설정합니다. |
| Use Consistency Sorting | 시뮬레이션에서 일관된 처리 순서를 유지해야 하는 경우 이 옵션을 활성화합니다. 여러 CPU 스레드에서 시뮬레이션 단계를 실행하면 별도의 데이터 배치가 생성됩니다. 이러한 별도의 배치를 처리하면 처리 순서의 결정론은 줄어들지만 결과를 더 빨리 얻을 수 있습니다. |
| Interpolation Poses Per Job | 각 시뮬레이션 잡에서 보간되는 최소 리지드바디 2D 오브젝트 수를 설정합니다. |
| New Contacts Per Job | 각 시뮬레이션 작업에서 찾을 최소한의 새로운 접촉 수를 설정합니다. |
| Collide Contacts Per Job | 각 시뮬레이션 작업에서 충돌할 최소 접촉 수를 설정합니다. |
| Clear Flags Per Job | 각 시뮬레이션 작업에서 지울 최소 플래그 수를 설정합니다. |
| Clear Body Forces Per Job | 각 시뮬레이션 작업에서 지울 최소 바디 수를 설정합니다. |
| Sync Discrete Fixtures Per Job | 각 시뮬레이션 작업에서 이산적 아일랜드 솔빙 중 BroadPhase에서 동기화할 최소 고정물 수를 설정합니다. |
| Sync Continuous Fixtures Per Job | 각 시뮬레이션 작업에서 연속적 아일랜드 솔빙 중 BroadPhase에서 동기화할 최소 고정물 수를 설정합니다. |
| Find Nearest Contacts Per Job | 각 시뮬레이션 작업에서 찾을 최소한의 가장 가까운 접촉 수를 설정합니다. |
| Update Trigger Contacts Per Job | 각 시뮬레이션 작업에서 업데이트할 최소한의 트리거 접촉 수를 설정합니다. |
| Island Solver Cost Threshold | 이산적 아일랜드 솔빙 중 모든 바디, 접점과 조인트의 최소 임곗값 비용을 설정합니다. |
| Island Solver Body Cost Scale | 이산적 아일랜드 솔빙 중 각 바디의 비용 스케일을 설정합니다. |
| Island Solver Contact Cost Scale | 이산적 아일랜드 솔빙 중 각 접점의 비용 스케일을 설정합니다. |
| Island Solver Joint Cost Scale | 이산적 아일랜드 솔빙 중 각 조인트의 비용 스케일을 설정합니다. |
| Island Solver Bodies Per Job | 아일랜드 솔빙을 수행할 때 각 시뮬레이션 작업에서 처리할 최소 바디 수를 설정합니다. |
| Island Solver Contacts Per Job | 아일랜드 솔빙을 수행할 때 각 시뮬레이션 작업에서 처리할 최소 접점 수를 설정합니다. |
Layer Collision Matrix 탭
Layer Collision Matrix 탭 설정을 통해 콜라이더(다른 리지드바디 2D에 연결됨)가 게임 오브젝트에 할당된 레이어에 따라 서로 접촉할 수 있는지를 제어합니다. 매트릭스는 각 레이어와 다른 모든 레이어를 표시하므로 다른 레이어와 접촉할 수 있는 특정 레이어를 선택할 수 있습니다.

Layer Collision Matrix 탭
두 레이어의 교차점에 있는 체크박스를 선택하면 해당 두 레이어 간의 접촉이 허용됨을 나타내고, 체크박스를 선택 해제하면 해당 두 레이어 간의 접촉이 허용되지 않음을 나타냅니다. 레이어 이름이나 체크박스 위에 마우스를 올리면 해당 레이어의 행과 열이 강조 표시되어 해당 레이어가 영향을 주는 레이어를 더 쉽게 확인할 수 있습니다.
팁: 최상의 성능을 위해 최적화하려면, 다른 항목과 접촉시키려는 특정 레이어만 선택하고 다른 불필요한 접촉은 모두 비활성화하여 최소한의 잠재적인 접촉만 선택해야 합니다. 이를 위해 Disable All 또는 Enable All을 선택하여 모든 옵션을 한 번에 빠르게 선택하거나 선택 해제한 후 특정 레이어를 선택할 수 있습니다.