기술 자료

Unity Engine

Unity Engine

물리 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 ScaleUnity가 충돌 중복을 해결하는 속도를 결정하는 스케일 요소를 설정합니다.
Baumgarte Time of Impact ScaleUnity가 충돌 시점 중복을 해결하는 속도를 결정하는 스케일 요소를 설정합니다.
Time to Sleep리지드바디 2D가 움직임을 멈춘 후 잠자기 모드로 전환될 수 있는 경과 시간(초)을 설정합니다.
Linear Sleep ToleranceTime to Sleep이 경과한 후 리지드바디 2D가 잠자기 모드로 전환되는 리니어 속도를 설정합니다.
Angular Sleep ToleranceTime to Sleep이 경과한 후 리지드바디 2D가 잠자기 모드로 전환되는 회전 속도를 설정합니다.
Default Contact Offset콜라이더가 실제로 접촉하지 않더라도 접촉 중인 것으로 간주되는 근접 거리 값을 설정합니다. 거리가
contactOffset
값의 합보다 작은 콜라이더는 접촉을 생성하므로 오브젝트가 약간 떨어져 있더라도 충돌 검사 시스템이 접촉 제약을 예측적으로 적용합니다. 경고: 이 값을 너무 줄이면 Unity의 연속 폴리곤 충돌 계산 속도가 느려질 수 있습니다. 반대로 값을 너무 많이 늘리면 버텍스 충돌에 결함이 발생할 수 있습니다.
Simulation ModeUnity가 2D 물리 시뮬레이션을 실행할 때 선택합니다.
Fixed Update이 옵션을 선택하면 MonoBehaviour.FixedUpdate가 호출된 직후 Unity에서 물리 시뮬레이션을 실행합니다.
Update이 옵션을 선택하면 MonoBehaviour.Update가 호출된 직후 Unity에서 물리 시뮬레이션을 실행합니다.
이 모드를 선택하면 추가 프로퍼티가 표시됩니다.
Script이 옵션을 선택하면 Physics2D.Simulate를 통해 물리 시뮬레이션을 수동으로 실행할 수 있습니다.
Simulation LayersSimulation Mode가 FixedUpdate 또는 Update로 설정되면 Unity가 시뮬레이션하는 레이어를 선택합니다.
기본적으로 Everything 옵션이 선택되어 자동으로 모든 레이어를 선택하고 물리 시뮬레이션에 모든 레이어를 포함합니다. 시뮬레이션에 포함할 특정 레이어를 선택할 수 있으며, Unity는 선택한 레이어의 Rigidbody2D, 조인트, 이펙터, Collider2D 간 접촉만 시뮬레이션합니다.
Queries Hit TriggersTriggers로 표시된 콜라이더 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을 선택하여 모든 옵션을 한 번에 빠르게 선택하거나 선택 해제한 후 특정 레이어를 선택할 수 있습니다.

추가 리소스