Version: 2023.1
언어: 한국어
물리 프로파일러 모듈
렌더링 프로파일러 모듈

Physics 2D Profiler 모듈

Physics 2D Profiler 모듈에는 프로젝트의 씬에서 물리 시스템이 처리하는 물리에 대한 정보가 표시됩니다.이 정보는 성능 문제나 프로젝트의 씬에 있는 물리와 관련된 예상치 못한 불일치를 진단하고 해결하는 데 유용할 수 있습니다.

Physics 2D Profiler 창
Profiler 창에 있는 Physics 2D Profiler 모듈

차트 카테고리

Physics 2D Profiler 모듈의 차트는 프로젝트의 씬에서 물리 시스템이 처리하는 물리와 관련된 다양한 통계를 추적하며, 다음과 같은 차트 카테고리로 나뉩니다.프레임 차트 창을 클릭하거나 차트 그래프의 캡처된 프레임을 선택하여 선택한 카테고리를 추적할 수 있습니다.차트에서 카테고리의 순서를 변경하려면 차트 범례에서 해당 카테고리를 드래그 앤 드롭합니다.또한 카테고리의 색상 범례를 클릭하여 표시를 토글할 수도 있습니다.선택한 통계에 대한 자세한 내용은 모듈 세부 정보 창을 참조하십시오.

차트 설명
Total Contacts 이 프레임에 있는 총 접촉 수입니다.여기에는 충돌과 트리거 접촉이 모두 포함됩니다.접촉을 처리하고 해결하는 데에는 시간이 많이 소요될 수 있으므로 접촉을 최소로 유지해야 합니다.
Total Shapes 이 프레임에 있었던 총 물리 모양 수입니다.다양한 Collider2D는 1부터 무제한까지 여러 개의 물리 모양을 생성합니다.모양 수를 구하고 물리 모양 검색을 수행하여 모든 Collider2D에 대해 이를 결정할 수 있습니다.
Total Queries 이 프레임에서 호출된 총 쿼리 수입니다.여기에는 Physics2D.Raycast, Physics2D.OverlapPoint 등과 같은 쿼리가 포함됩니다.
Total Callbacks 이 프레임에서 호출된 OnCollisionEnter2D, OnCollisionStay2D, OnCollisionExit2D, OnTriggerEnter2D, OnTriggerStay2D, OnTriggerExit2D 콜백의 총 수입니다.
Total Joints 이 프레임에 있었던 총 Joint2D 수입니다.
Total Bodies 이 프레임에 있었던 총 Rigidbody2D 수입니다.
Awake Bodies 깨어 있음 상태(수면 중 상태 아님)였고 프레임에 있었던 총 Rigidbody2D 수입니다.
Dynamic Bodies 이 프레임에 있었던 동적 바디 타입의 총 Rigidbody2D 수입니다.동적 바디는 모든 바디 타입 중 처리가 가장 많이 필요하므로 최소로 유지해야 합니다.
Continuous Bodies 이 프레임에 있었던 연속 충돌 검사 모드의 총 Rigidbody2D 수입니다.연속 바디는 불연속 충돌 검사 모드를 사용할 때보다 비용이 훨씬 많이 들기 때문에 최소로 유지해야 합니다.
Physics Used Memory 2D 물리 시스템에서 독점적으로 사용하는 지속적인 메모리의 총 수입니다.여기에는 코어 엔진과 각 물리 컴포넌트에서 사용되는 메모리가 모두 포함되지만, 이 프레임에서 사용되는 임시 메모리는 포함되지 않습니다.

모듈 세부 정보 창

Physics 2D Profiler 모듈에서 프레임을 선택하면 세부 정보 창에 프로젝트의 씬에 있는 물리에 대한 자세한 정보가 표시됩니다.세부 정보 창은 카테고리별로 정렬되며, 각 카테고리는 한 줄로 표시됩니다.

다음 레퍼런스 표에서는 사용 가능한 통계와 해당 프로파일러 카운터, 릴리스 빌드의 가용성에 대해 설명합니다.프로파일러 카운터는 에디터와 개발 빌드에서 항상 사용할 수 있습니다.이 정보는 ProfilerRecorder API프로파일러 모듈 에디터에서도 사용할 수 있으므로 커스텀 프로파일러 모듈에 추가할 수 있습니다.

물리 사용 메모리

통계 설명 해당 프로파일러 카운터(정확한 이름) 릴리스 플레이어 지원 여부
Total 2D 물리 시스템에서 독점적으로 사용하는 지속적인 메모리의 총 수입니다.여기에는 코어 엔진과 각 물리 컴포넌트에서 사용되는 메모리가 모두 포함되지만, 이 프레임에서 사용되는 임시 메모리는 포함되지 않습니다. Physics Used Memory 2D 지원 안 함
Relative Unity의 전체 메모리 사용량과 비교하여 2D 물리 시스템에서 사용하는 메모리의 상대적인 비율입니다. 해당 없음 해당 없음

바디

통계 설명 해당 프로파일러 카운터(정확한 이름) 릴리스 플레이어 지원 여부
Total 이 프레임에 있었던 총 Rigidbody2D 수입니다. Total Bodies 지원 안 함
Awake 깨어 있음 상태(수면 중 상태 아님)였고 프레임에 있었던 Rigidbody2D 수입니다.정적 바디 타입의 Rigidbody2D는 항상 잠들어 있습니다. Awake Bodies 지원 안 함
Asleep 수면 중(깨어 있지 않음)이고 프레임에 있었던 Rigidbody2D 수입니다.정적 바디 타입의 Rigidbody2D는 항상 잠들어 있습니다. Asleep Bodies 지원 안 함
Dynamic 이 프레임에 있었던 동적 바디 타입의 Rigidbody2D 수입니다.동적 바디는 모든 바디 타입 중 처리가 가장 많이 필요하므로 최소로 유지해야 합니다. Dynamic Bodies 지원 안 함
Kinematic 이 프레임에 있었던 키네마틱 바디 타입의 Rigidbody2D 수입니다.키네마틱 바디는 최소한의 처리만 필요하므로 명시적 움직임이 필요하지만 외부 힘에 대한 반응은 필요하지 않을 경우 사용해야 합니다. Kinematic Bodies 지원 안 함
Static 이 프레임에 있었던 정적 바디 타입의 Rigidbody2D 수입니다.정적 바디는 모든 바디 타입 중에 처리가 가장 적게 필요하므로 가능한 한 움직임이 필요하지 않은 경우에 사용해야 합니다. Static Bodies 지원 안 함
분리 이 프레임에 있었던 불연속 충돌 검사 모드의 Rigidbody2D 수입니다.불연속 바디는 연속 충돌 검사 모드를 사용할 때보다 비용이 적게 들기 때문에 가능한 경우 사용해야 합니다. Discrete Bodies 지원 안 함
Continuous 이 프레임에 있었던 연속 충돌 검사 모드의 Rigidbody2D 수입니다.연속 바디는 불연속 충돌 검사 모드를 사용할 때보다 비용이 훨씬 많이 들기 때문에 최소로 유지해야 합니다. Continuous Bodies 지원 안 함

모양

통계 설명 해당 프로파일러 카운터(정확한 이름) 릴리스 플레이어 지원 여부
Total 이 프레임에 있었던 총 물리 모양의 수입니다.다양한 Collider2D는 1부터 무제한까지 여러 개의 물리 모양을 생성합니다.모양 수를 구하고 물리 모양 검색을 수행하여 모든 Collider2D에 대해 이를 결정할 수 있습니다. Total Shapes 지원 안 함
Awake 물리 모양이 깨어 있음 상태의 Rigidbody2D에 연결되어 있으면 깨어 있습니다.깨어 있었고(수면 중 상태 아님) 이 프레임에 있었던 물리 모양의 수입니다. Awake Shapes 지원 안 함
Asleep 물리 모양이 잠들어 있는 Rigidbody2D에 연결되어 있으면 잠들어 있습니다.수면 중이었고(깨어 있지 않음) 이 프레임에 있었던 물리 모양의 수입니다. Asleep Shapes 지원 안 함
Dynamic 물리 모양이 동적 바디 타입인 Rigidbody2D에 연결되어 있으면 동적입니다.동적이었고 이 프레임에 있었던 물리 모양의 수입니다. Dynamic Shapes 지원 안 함
Kinematic 물리 모양이 키네마틱 바디 타입인 Rigidbody2D에 연결되어 있으면 동적입니다.키네마틱이었고 이 프레임에 있었던 물리 모양의 수입니다. Kinematic Shapes 지원 안 함
Static 물리 모양이 정적 바디 타입인 Rigidbody2D에 연결되어 있으면 동적입니다.정적이었고 이 프레임에 있었던 물리 모양의 수입니다. Static Shapes 지원 안 함

쿼리

통계 설명 해당 프로파일러 카운터(정확한 이름) 릴리스 플레이어 지원 여부
Total 이 프레임에서 호출된 총 쿼리 수입니다.여기에는 Physics2D.Raycast, Physics2D.OverlapPoint와 같은 쿼리가 포함됩니다. Total Queries 지원 안 함
Raycast 이 프레임에서 호출된 광선 또는 선 기반 쿼리 수입니다.여기에는 Physics2D.Raycast와 Physics2D.Linecast와 같은 쿼리가 포함됩니다. Raycast Queries 지원 안 함
Shapecast 이 프레임에서 호출된 모양 스윕(swept) 쿼리 수입니다.여기에는 Physics2D.BoxCast, Physics2D.CircleCast, Collider2D.Cast와 같은 쿼리가 포함됩니다. Shapecast Queries 지원 안 함
Overlap 이 프레임에서 호출된 오버랩 쿼리 수입니다.여기에는 Physics2D.OverlapPoint, Physics2D.OverlapCircle, Collider2D.OverlapCollider와 같은 쿼리가 포함됩니다. Overlap Queries 지원 안 함
IsTouching 이 프레임에서 호출된 접촉 터치 쿼리 수입니다.여기에는 Physics2D.IsTouching, Collider2D.IsTouching, Rigidbody2D.IsTouching과 같은 쿼리가 포함됩니다. IsTouching Queries 지원 안 함
GetContacts 이 프레임에서 호출된 접촉 검색 쿼리 수입니다.여기에는 Physics2D.GetContacts, Collider2D.GetContacts, Rigidbody2D.GetContacts와 같은 쿼리가 포함됩니다.물리 쿼리가 아닌 Collision2D.GetContacts는 포함되지 않습니다. GetContacts Queries 지원 안 함
Particle 이 프레임의 파티클 시스템에서 호출된 쿼리 수입니다.파티클 시스템 모듈이 2D 물리 콜라이더와 접촉하도록 구성되고 파티클 시스템에서 전적으로 제어하는 경우에 사용됩니다.상당히 커질 수 있지만 처리 효율도 매우 높습니다. Particle Queries 지원 안 함

접촉

통계 설명 해당 프로파일러 카운터(정확한 이름) 릴리스 플레이어 지원 여부
Total 이 프레임에 있는 총 접촉 수입니다.여기에는 충돌과 트리거 접촉이 모두 포함됩니다.접촉을 처리하고 해결하는 데에는 시간이 많이 소요될 수 있으므로 접촉을 최소로 유지해야 합니다. Total Contacts 지원 안 함
Added 이 프레임에 추가된 접촉 수입니다.여기에는 충돌과 트리거 접촉이 모두 포함됩니다.한 프레임에 접촉을 너무 많이 추가하면 순간적으로 성능이 저하될 수 있으므로 최소로 유지해야 합니다. Added Contacts 지원 안 함
Removed 이 프레임에서 제거된 접촉 수입니다.여기에는 충돌과 트리거 접촉이 모두 포함됩니다.접촉을 제거하면 빠르고 성능에 미치는 영향이 최소화됩니다. Removed Contacts 지원 안 함
Broadphase Updates 이 프레임에서 처리된 브로드페이즈 업데이트 수입니다.브로드페이즈 업데이트는 물리 모양이 추가, 제거되거나 크기가 변경될 때 발생합니다.브로드페이즈 업데이트는 두 물리 모양이 잠재적으로 겹쳐서 브로드페이즈 페어(아래 참조)가 생성될 수 있을 때 접촉 변화를 감지하는 데 사용됩니다. Broadphase Updates 지원 안 함
Broadphase Pairs 이 프레임에서 처리된 브로드페이즈 페어 수입니다.브로드페이즈 페어는 브로드페이즈 업데이트로 인해 두 물리 모양이 잠재적으로 겹칠 때 생성됩니다.그런 다음 브로드페이즈 페어가 처리되고 그 결과 새로운 접촉이 생기거나 물리 모양이 서로 접촉하도록 구성되지 않은 경우 무시됩니다. Broadphase Pairs 지원 안 함

콜백

통계 설명 해당 프로파일러 카운터(정확한 이름) 릴리스 플레이어 지원 여부
Total 이 프레임에서 호출된 OnCollisionEnter2D, OnCollisionStay2D, OnCollisionExit2D, OnTriggerEnter2D, OnTriggerStay2D, OnTriggerExit2D 콜백의 총 수입니다. Total Callbacks 지원 안 함
Collision Enter 이 프레임에서 호출된 OnCollisionEnter2D 콜백 수입니다. Collision Enter 지원 안 함
Collision Stay 이 프레임에서 호출된 OnCollisionStay2D 콜백 수입니다. Collision Stay 지원 안 함
Collision Exit 이 프레임에서 호출된 OnCollisionExit2D 콜백 수입니다. Collision Exit 지원 안 함
Trigger Enter 이 프레임에서 호출된 OnTriggerEnter2D 콜백 수입니다. Trigger Enter 지원 안 함
Trigger Stay 이 프레임에서 호출된 OnTriggerStay2D 콜백 수입니다. Trigger Stay 지원 안 함
Trigger Exit 이 프레임에서 호출된 OnTriggerExit2D 콜백 수입니다. Trigger Exit 지원 안 함

솔버

통계 설명 해당 프로파일러 카운터(정확한 이름) 릴리스 플레이어 지원 여부
World Count 이 프레임에 있었던 총 물리 씬 수입니다.각 물리 씬에는 다른 물리 세계와 독립적으로 시뮬레이션할 수 있는 물리 월드가 포함되어 있습니다.시뮬레이션하지 않는 한 메모리만 차지하고 작업을 수행하지 않기 때문에 월드 수가 많다고 해서 그 자체로 성능 문제가 되는 것은 아닙니다. Solver World Count 지원 안 함
Simulation Count Unity가 자동으로 Physics2D.Simulate를 호출하거나 PhysicsScene2D.Simulate를 직접 호출하여 모든 물리 씬을 시뮬레이션한 횟수입니다. Solver Simulation Count 지원 안 함
Discrete Islands 아일랜드는 공통 조인트나 공통 접촉을 통해 연결된 바디의 연결 그래프입니다.정적 바디 타입은 아일랜드를 연결하지 않습니다.이산적 솔빙 단계를 처리할 때 해결된 접촉 아일랜드 수입니다. Solver Discrete Islands 지원 안 함
Continuous Islands 아일랜드는 공통 조인트나 공통 접촉을 통해 연결된 바디의 연결 그래프입니다.정적 바디 타입은 아일랜드를 연결하지 않습니다.이는 연속적 솔빙 단계를 처리할 때 해결된 아일랜드 수입니다.연속적 아일랜드 솔빙은 비용이 매우 많이 드는 프로세스이며 아일랜드를 재생성하고 재처리해야 하는 작업을 여러 번 반복해야 하므로 이를 최소로 유지해야 합니다.연속 충돌 검사 모드가 있는 Rigidbody2D를 통해서만 이 추가 연속 아일랜드가 생성되고 처리됩니다. Solver Continuous Islands 지원 안 함

트랜스폼 동기화

통계 설명 해당 프로파일러 카운터(정확한 이름) 릴리스 플레이어 지원 여부
Sync Calls 이 프레임에서 호출된 총 트랜스폼 동기화 호출 수입니다.트랜스폼 동기화(트랜스폼 읽기라고도 함)는 트랜스폼이 변경되었는지 확인하고, 변경된 경우 트랜스폼 포즈를 읽어서 Rigidbody2D 또는 Collider2D를 업데이트하는 것입니다.트랜스폼은 물리 컴포넌트를 사용할 때 변경되지 않아야 합니다. 가끔 필요할 때도 있지만 너무 많이 수행하면 성능 문제가 발생할 수도 있으므로 피해야 합니다.모든 움직임은 Rigidbody2D API를 사용하여 수행해야 합니다.

물리 시스템은 시뮬레이션 단계 수행의 첫 번째 부분으로 트랜스폼 동기화를 한 번 수행하므로 시뮬레이션을 수행하면 항상 하나 이상이 됩니다(위의 Simulation Count 참조).또한 물리 시스템은 Rigidbody2D 보간을 처리하는 경우 프레임당 트랜스폼 동기화를 한 번 수행합니다.

추가 호출은 Physics2D.AutoSyncTransforms가 활성화되어 있거나(기본값은 비활성화) Physics2D.SyncTransforms가 호출되는 경우 표시되지만, 이 둘은 모두 성능에 심각한 영향을 미칠 수 있으므로 피해야 합니다.
Total Transform Sync Calls 지원 안 함
Sync Bodies 트랜스폼 동기화의 영향을 받은 Rigidbody2D 수입니다.최소로 유지해야 하며, 0이면 더 좋습니다. Transform Sync Bodies 지원 안 함
Sync Colliders 트랜스폼 동기화의 영향을 받은 Collider2D 수입니다.최소로 유지해야 하며, 0이면 더 좋습니다. Transform Sync Colliders 지원 안 함
Parent Sync Bodies 트랜스폼의 부모 변경으로 인한 트랜스폼 동기화의 영향을 받은 Rigidbody2D 수입니다.최소로 유지해야 하며, 0이면 더 좋습니다. Transform Parent Sync Bodies 지원 안 함
Parent Sync Colliders 트랜스폼의 부모 변경으로 인한 트랜스폼 동기화의 영향을 받은 Collider2D 수입니다.최소로 유지해야 하며, 0이면 더 좋습니다. Transform Parent Sync Colliders 지원 안 함

조인트

통계 설명 해당 프로파일러 카운터(정확한 이름) 릴리스 플레이어 지원 여부
Total 이 프레임에 있었던 총 Joint2D 수입니다.조인트 솔빙은 비용이 많이 들 수 있으므로 최소한으로 유지해야 합니다. Total Joints 지원 안 함

타이밍

참고:모든 타이밍은 모든 물리 월드에 걸쳐 합산됩니다(World Count 참조).샘플링된 타이밍의 횟수는 타이밍 뒤 대괄호 안에 표시됩니다.실질적으로 타이밍을 World Count 값으로 나누어 평균 시간을 구할 수 있습니다.

통계 설명 해당 프로파일러 카운터(정확한 이름) 릴리스 플레이어 지원 여부
Sim 전체 시뮬레이션 단계를 처리하는 데 걸린 총 시간입니다.Physics2D.Simulate를 호출하거나 PhysicsScene2D.Simulate를 직접 호출하여 Unity가 자동으로 호출할 수 있습니다.이 시간에는 트랜스폼 동기화(읽기), 접촉 계산, 통합, 접촉 및 조인트 솔빙, 트랜스폼 쓰기, 접촉 콜백을 비롯한 시뮬레이션 단계를 완료하는 데 필요한 모든 단계가 포함되어 있습니다. 해당 없음 해당 없음
Sync 트랜스폼 동기화를 처리하는 데 걸린 총 시간입니다(Sync Calls 참조). 해당 없음 해당 없음
Step 시뮬레이션 단계를 처리하는 데 걸린 총 시간입니다.이 시간에는 접촉 계산, 통합, 접촉 및 조인트 솔빙을 비롯한 시뮬레이션 단계를 완료하는 데 필요한 핵심 단계만 포함되어 있습니다. 해당 없음 해당 없음
Write 트랜스폼 쓰기를 처리하는 데 걸린 총 시간입니다.이는 바디 포즈를 읽고 트랜스폼 시스템에 다시 쓰는 시뮬레이션 단계의 끝에서 발생합니다. 해당 없음 해당 없음
Callbacks 모든 콜백을 처리하는 데 걸린 총 시간입니다(Total Callbacks 참조). 해당 없음 해당 없음

레거시 물리 프로파일러

Legacy 모드로 전환하면 이전 버전의 Unity에서 기본 모듈이었던 이전 버전의 Physics 2D Profiler 모듈을 볼 수 있습니다.이렇게 하려면 Profiler 모듈의 세부 정보 창의 오른쪽 상단에 있는 드롭다운 메뉴에서 Legacy를 선택합니다.

이 모드에서는 이전 버전의 Unity에 저장된 프로파일러 데이터를 로드하고 검사할 수 있습니다.이 모드로 전환하여 새로운 버전의 Unity에서 캡처한 데이터를 검사하면 표시된 데이터가 신뢰할 수 없고 부정확할 수 있습니다.현재 버전의 Unity에서 물리 2D 프로파일러 데이터를 검사하려면 항상 Current 모드를 사용하는 것이 좋습니다.

레거시 프로파일러 뷰
레거시 프로파일러 뷰
물리 프로파일러 모듈
렌더링 프로파일러 모듈