Version: 2023.1
언어: 한국어
물리
플레이어

물리 2D 레퍼런스

다음 프로젝트 설정은 Unity 물리 시스템에서 2D 게임 오브젝트의 물리 시뮬레이션 정확도 관련 제한을 정의하는 물리 2D에 대한 글로벌 설정을 관리합니다. 시뮬레이션 정확도가 높을수록 처리 오버헤드가 증가하며, 이러한 설정을 통해 프로젝트에 가장 적합한 정확도와 성능 간의 균형을 조정할 수 있습니다.

Physics 2D 프로젝트 설정 창을 열려면 Edit > Project Settings… > Physics 2D로 이동하여 Physics 2D에 대한 전역 프로젝트 설정을 관리합니다.

참고: 대신 3D 물리에 대한 전역 설정을 관리하려면 물리 프로젝트 설정 레퍼런스 페이지를 참조하십시오.

물리 2D 인스펙터 설정
물리 2D 인스펙터 설정

General Settings 탭

Physics 2D 관리자 창의 General Settings 탭에서 사용할 수 있는 프로퍼티는 다음과 같습니다.

프로퍼티 기능
Gravity 모든 리지드바디 2D 게임 오브젝트에 적용되는 중력의 양을 설정합니다. 일반적으로 중력은 Y축의 음의 방향에 대해서만 설정합니다.
Default Material 개별 콜라이더 2D에 레퍼런스가 할당되지 않은 경우, 물리 머티리얼 2D에 대한 레퍼런스를 설정합니다.
Velocity Iterations 물리 시스템이 속도 효과를 해결하기 위해 수행하는 반복 작업 횟수를 설정합니다. 숫자가 클수록 물리 계산이 더 정확해지지만 에디터에 더 많은 CPU 시간이 소요됩니다.
Position Iterations 위치 변경을 해결하기 위해 물리 시스템이 수행하는 반복 작업 횟수를 설정합니다. 수치가 높을수록 물리 계산이 더 정확해지지만 더 많은 CPU 시간이 소요됩니다.
Bounce Threshold 탄성 충돌에 대한 임계값을 설정합니다. 이 임계값보다 낮은 상대 선형 속도로 이루어지는 모든 충돌은 비탄성 충돌로 처리되므로 바운스가 발생하지 않습니다.
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** 콜라이더가 실제로 접촉하지 않았더라도 접촉한 것으로 간주할 근접도 거리 값을 설정합니다. 거리가 contactOffset 값의 합보다 작은 콜라이더는 접촉을 생성하므로, 오브젝트가 약간 떨어져 있더라도 충돌 검사 시스템이 미리 접촉 제약을 적용할 수 있습니다. 주의: 이 값을 너무 작게 설정하면 Unity가 연속적 폴리곤 충돌을 계산하지 못하게 될 수 있습니다. 반대로 값을 너무 크게 설정하면 버텍스 충돌 결함이 초래될 수 있습니다.
Simulation Mode Unity가 언제 2D 물리 시뮬레이션을 실행할지 선택합니다.
Fixed Update 이 옵션을 선택하면 MonoBeaviour.FixedUpdate가 호출된 직후 Unity가 물리 시뮬레이션을 실행합니다.
Update 이 옵션을 선택하면 MonoBeaviour.Update가 호출된 직후 Unity가 물리 시뮬레이션을 실행합니다.
이 모드를 선택하면 추가 프로퍼티가 표시됩니다.
스크립트 이 항목을 선택하면 Physics2D.Simulate을 통해 물리 시뮬레이션을 수동으로 실행할 수 있습니다.
Simulation Layers Simulation ModeFixedUpdate 또는 Update로 설정된 경우 Unity가 시뮬레이션할 레이어를 선택합니다.
기본적으로 Everything 옵션이 선택되어 모든 레이어가 자동으로 선택되고 모든 레이어가 물리 시뮬레이션에 포함됩니다. 시뮬레이션에 포함할 특정 레이어를 선택할 수 있으며, Unity는 선택한 레이어에서 Rigidbody2D, 조인트, 이펙터Collider2D 사이의 접점만 시뮬레이션합니다.
Queries Hit Triggers Triggers로 표시된 콜라이더 2D가 (라인캐스트 또는 래이캐스트 같은) 물리 쿼리와 교차하는 경우 적중(hit)을 반환하게 하려면 이 옵션을 활성화합니다.기본적으로 활성화되어 있습니다.
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 멀티스레딩 설정을 조정하려면 이 항목을 확장합니다.각 프로퍼티에 대한 자세한 내용은 멀티스레딩을 참조하십시오.

시뮬레이션 모드: 업데이트

다음 프로퍼티는 Simulation Mode에 대해 Update 또는 Script를 선택했을 때만 표시됩니다.

프로퍼티 기능
Use Sub Stepping 이 프로퍼티를 활성화하면 에디터가 시뮬레이션 단계 중에 시뮬레이션 하위 단계를 사용합니다.
Use Sub Step Count 이 프로퍼티를 활성화하면 에디터가 모든 시뮬레이션 하위 단계의 접점을 계산합니다. 이렇게 하면 각 하위 단계에 대해 보다 정확한 시뮬레이션이 가능하지만 성능이 저하됩니다. 첫 번째 시뮬레이션 하위 단계에 대한 접점만 계산하려면 이 프로퍼티를 비활성화합니다.
Max Sub Step Count 시뮬레이션 하위 단계가 활성화되어 실행 중일 때 프레임당 허용되는 시뮬레이션 하위 단계의 최대 수를 설정합니다. 이 값은 에디터가 하위 단계에 들이는 시간도 제한합니다.
Min Sub Step FPS 에디터가 하위 단계를 사용하기 전에 시뮬레이션 단계에 허용되는 최소 초당 프레임 수를 설정합니다. 현재 프레임 속도가 이 값보다 낮을 때 Use Sub Stepping이 활성화된 경우 에디터는 시뮬레이션 하위 단계를 사용합니다.

멀티스레딩

Multithreading 섹션의 설정에서 C# Job System을 사용하여 멀티스레드 물리를 구성할 수 있습니다.

확장된 멀티스레딩 설정
확장된 멀티스레딩 설정
프로퍼티 기능
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 탭
Layer Collision Matrix 탭

두 레이어 사이의 교차점에 체크 표시가 있으면 두 레이어 간의 접촉이 허용됨을 나타내며, 체크박스의 선택이 해제되어 있으면 두 레이어 간의 접촉이 허용되지 않음을 나타냅니다.레이어의 이름이나 체크박스에 마우스 커서를 올리면 해당 행과 열이 하이라이트되어 어떤 레이어에 영향을 미치는지 쉽게 확인할 수 있습니다.

:최상의 성능을 위해 최적화하려면, 다른 항목과 접촉시키려는 특정 레이어만 선택하고 다른 불필요한 접촉은 모두 비활성화하여 최소한의 잠재적인 접촉만 선택해야 합니다.이를 위해 Disable All 또는 Enable All을 선택하여 모든 옵션을 한 번에 빠르게 선택하거나 선택 해제한 다음, 특정 레이어를 선택할 수 있습니다.

추가 리소스

Physics2DManager

물리
플레이어