The following Project settings manage the global settings for Physics 2D, which define the limits on the accuracy of the physics simulation of 2D GameObjects in the Unity physics system. A more accurate simulation requires more processing overhead, and these settings allow you to adjust the trade-off between accuracy and performance that best suits your project.
To open the Physics 2D project settings window, go to Edit > Project Settings… > Physics 2D to manage the global Project settings for Physics 2D
Note: To manage the global settings for 3D physics instead, refer to the Physics Project settings reference page.
The following are the properties available in the General Settings tab of the Physics 2D manager window.
프로퍼티 | 기능 | |
---|---|---|
Gravity | Set the amount of gravity applied to all Rigidbody 2D GameObjects. Usually you only set gravity for the negative direction of the y-axis. | |
Default Material | 개별 콜라이더 2D에 레퍼런스가 할당되지 않은 경우, 물리 머티리얼 2D에 대한 레퍼런스를 설정합니다. | |
Velocity Iterations | Set the number of iterations made by the physics system to resolve velocity effects. Higher numbers result in more accurate physics calculations but the Editor requires more CPU time. | |
Position Iterations | Set the number of iterations made by the physics system to resolve position changes. Higher numbers result in more accurate physics calculations but also requires more CPU time. | |
Bounce Threshold | Set the threshold for elastic collisions. Unity treats any collisions with a relative linear velocity below this threshold as inelastic, so no bounce will occur. | |
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 | Set the time (in seconds) that must pass after a Rigidbody 2D stops moving before it goes to sleep. | |
Linear Sleep Tolerance | Set the linear speed below which a Rigidbody 2D goes to sleep after the Time to Sleep elapses. | |
Angular Sleep Tolerance | Set the rotational speed below which a Rigidbody 2D goes to sleep after Time to Sleep elapses. | |
Default Contact Offset | Set a proximity distance value for Colliders to be considered in contact, even when they aren’t actually in contact. Colliders whose distance is less than the sum of their contactOffset values generate contacts, which causes the collision detection system to predictively enforce the contact constraint even when the objects are slightly separated. Caution: Reducing this value too far can slow down Unity’s ability to calculate continuous polygon collisions. Conversely, increasing the value too much might create artifacts for vertex collisions. |
|
Simulation Mode | Select when Unity executes the 2D physics simulation. | |
Fixed Update | Select this to have Unity execute the physics simulation immediately after MonoBehaviour.FixedUpdate is called. | |
Update | Select this to have Unity execute the physics simulation immediately after MonoBehaviour.Update is called. When you select this mode, additional properties are visible. |
|
스크립트 | Select this to manually execute the physics simulation via Physics2D.Simulate. | |
Simulation Layers | Select which layer(s) Unity simulates when Simulation Mode is set to FixedUpdate or Update. The Everything option is selected by default, which automatically selects all layers and includes all of them in the physics simulation. You can select which specific layer(s) to include in the simulation, and Unity will only simulate the Rigidbody2D, joints, effectors, and contacts between Collider2D on those selected layers. |
|
Queries Hit Triggers | Enable this option if you want Collider 2Ds marked as Triggers to return a hit when any physics query (such as Linecasts or Raycasts) intersects with them. Defaults to enabled. | |
Queries Start In Colliders | Enable this option if you want physics queries that start inside a Collider 2D to detect the Collider they start in. | |
Callbacks On Disable | Enable this option to produce collision callbacks when a Collider with contacts is disabled. | |
Reuse Collision Callbacks | Enable this setting to have the physics system reuse a single Collision2D instance for all collision callbacks. Disable to have the physics system create a new Collision2D instance for each collision callback instead. | |
Auto Sync Transforms | 트랜스폼 변화를 물리 시스템과 자동으로 동기화하려면 이 옵션을 활성화합니다. | |
Gizmos | Select the types of physics 2D gizmos to be drawn within the Editor. You may select multiple options. | |
Nothing | Select this to deselect every option. No physics 2D gizmo will be drawn. | |
Everything | Select this to select every option. | |
All Colliders | Select this to have all Colliders drawn without having to select them in the Hierarchy window. | |
Colliders Outlined | Select this to have Colliders drawn with an outline (you can customize the outline’s color in 2D Physics Preferences). | |
Colliders Filled | Select this to have all Colliders drawn using the Fill color specified in the 2D Physics Preferences. | |
Colliders Sleeping | Select this to have Colliders drawn to show when the Rigidbody 2D they are attached to is sleeping using the Awake or Asleep colors specified in the 2D Physics Preferences. | |
Collider Contacts | Select this to have Collider contacts shown as a directional arrow that starts at the contact point in the direction of the contact normal. You can specify the Contact color of the arrow in the 2D Physics Preferences. | |
Collider Bounds | Select this to have Collider bounds drawn for all PhysicsShape2D that a Collider creates. The bounds are an Axis-Aligned Bounding Box (AABB). | |
Multithreading | Expand this to adjust the multithreading settings. Refer to Multithreading for information about each property. |
The followings properties are visible only when you select Update or Script for the Simulation Mode.
프로퍼티 | 기능 |
---|---|
Use Sub Stepping | Enable this property to have the Editor use simulation sub-stepping during the simulation step. |
Use Sub Step Count | Enable this property to have the Editor calculate contacts for all simulation sub-steps. This provides a more exact simulation for each sub-step but will reduce performance. Disable this property to only calculate contacts for the first simulation sub-step. |
Max Sub Step Count | Sets the maximum number of simulation sub-steps allowed per-frame when simulation sub-stepping is enabled and actively running. This will also limit the amount of time the Editor spends on sub-stepping. |
Min Sub Step FPS | Sets the minimum frames-per-second allowed for a simulation step before the Editor begins to use sub-stepping. When the current frame rate is lower than this value, the Editor will use simulation sub-stepping if Use Sub Stepping is enabled. |
The settings in the Multithreading section allow you to use the C# Job System to configure multithreaded physics.
프로퍼티 | 기능 |
---|---|
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 | 아일랜드 솔빙을 수행할 때 각 시뮬레이션 작업에서 처리할 최소 접점 수를 설정합니다. |
The Layer Collision Matrix tab settings control whether Colliders (attached to different Rigidbody 2Ds) can come into contact which each other, based on the Layer assigned to the GameObject they are on. The matrix displays each Layer against every other Layer, allowing you to select which specific Layers can come into contact with another.
A check mark at the intersection between two Layers indicates that contact is allowed between those two Layers, while a cleared checkbox indicates that contact between those two Layers is never allowed. When you hover over a Layer’s name or a checkbox, its row and column are highlighted to make it easier to see which Layers its affects.
Tip: To optimize for the best possible performance, you should ensure that only the minimum number of potential contacts are selected by only selecting the specific Layers that you want to have contact with others, and disabling all other unnecessary contacts. To help with this, you can select Disable All or Enable All to quickly select or deselect all options at once. and then select the specific Layers.
Physics2DManager