Photon Quantum 2.1.1

Public Attributes | List of all members
Quantum.PhysicsCommon.Config Class Reference

Global physics settings which are part of the SimulationConfig. More...

Public Attributes

bool AllowCCD = false
 Allows CCD to be performed if the Physics Body has CCD enabled on its Config flags. More...
 
Boolean AllowSleeping = false
 Toggles the detection of physics bodies in a sleeping state. If allowed, the simulation will skip forces and velocity integrations and collisions detection on physics bodies while they are asleep. More...
 
FP AngularSleepToleranceInRad = FP._2 * FP.Deg2Rad
 Amount of angular velocity below which a physics body might be considered as standing still for sleeping detection. More...
 
FP CCDAngularVelocityThreshold = FP._3
 If CCD is allowed, it will be performed on all Physics Bodies that have it enabled and have a angular velocity magnitude above this threshold. More...
 
FP CCDDistanceTolerance = FP.EN3
 The absolute distance value below which the Physics Bodies under CCD check can be considered as touching. More...
 
FP CCDLinearVelocityThreshold = FP._3
 If CCD is allowed, it will be performed on all Physics Bodies that have it enabled and have a linear velocity magnitude above this threshold. More...
 
AssetRefCharacterController2DConfig DefaultCharacterController2D
 The default CharacterController2DConfig asset used when initializing a CharacterController2D component with no other config specified More...
 
AssetRefCharacterController3DConfig DefaultCharacterController3D
 The default CharacterController3DConfig asset used when initializing a CharacterController3D component with no other config specified More...
 
AssetRefPhysicsMaterial DefaultPhysicsMaterial
 The default PhysicsMaterial asset used when initializing a 2D or 3D physics collider component with no other material specified More...
 
FPVector3 Gravity = new FPVector3(FP._0, -FP._10, FP._0)
 Define the gravity of the physics simulation. For a 2D world set the y-component to zero. More...
 
Int32[] LayerMatrix
 The collision matrix of the layers recognized by the Quantum simulation. Can be imported from Unity's layer matrix on the editor. More...
 
String[] Layers
 The collision layer names recognized by the Quantum simulation. Can be imported from Unity layers on the editor. More...
 
FP LinearSleepTolerance = FP._0_02
 Amount of linear velocity below which a physics body might be considered as standing still for sleeping detection. More...
 
int MaxRootFindingIterations = 32
 The maximum number of iterations performed when computing the point in time when the distance between two Physics Bodies in a given separation axis is below the tolerance. More...
 
int MaxTimeOfImpactIterations = 16
 The maximum number of iterations performed by the CCD algorithm when computing the time of impact between two Physics Bodies. More...
 
FP MinAngularIntegration = 0
 A physics body's angular velocity component (x, y or z in the 3D Physics and the amount relative to the vertical axis in the 2D Physics) is rounded to 0 if its absolute value is smaller than this minimum angular integration. A small amount can increase the physics simulation stability and improve sleep detection. More...
 
FP MinLinearIntegration = 0
 A physics body's linear velocity component (x, y or z, the latter only in the 3D Physics) is rounded to 0 if its absolute value is smaller than this minimum linear integration. A small amount can increase the physics simulation stability and improve sleep detection. More...
 
FP PenetrationAllowance = FP._0_01
 Allow a certain degree of penetration to improve the stability of the physics simulation. More...
 
FP PenetrationCorrection = FP._0_50
 How much of the exceeding penetration (above allowance) should be corrected in a single frame. 0 = no correction, 1 = full correction. More...
 
Int32 PositionSolverIterations = 2
 The physics position constraint solver (used on Joint, for instance) runs in sub-steps to improve quality. More...
 
FP ShapeCastHardTolerance = FP.EN2
 A GJK iteration result below this threshold is acceptable as a finishing condition. In general, increasing the hard tolerance decreases the accuracy of the result, but reduces computational cost by requiring less iterations. More...
 
Int32 ShapeCastMaxIterations = 16
 The max number of iterations performed by the GJK algorithm while searching for a solution below ShapeCastHardTolerance. More...
 
FP ShapeCastSoftTolerance = FP._0_05
 A GJK resolution that fails to find an acceptable result below ShapeCastHardTolerance after ShapeCastMaxIterations will still return positive if the best solution found is below this soft threshold. More...
 
Int32 SimplexMaxBitShift = 2
 The GJK Voronoy Simplex space is scaled by progressively by shifting points' raw values up to this max value when the current instance becomes affine dependent, avoiding degenerate cases due to limited precision. More...
 
Int32 SimplexMinBitShift = 0
 Scales the GJK Voronoy Simplex space by shifting points' raw values. Consider increasing if working with small-scaled shapes. More...
 
FP SleepTimeSec = FP._0_50
 For how many seconds a physics body should stay under the linear and angular velocity sleeping thresholds before being put in a sleeping state. More...
 
Int32 SolverIterations = 4
 The physics collision solver runs in sub-steps to improve quality. More...
 
ConstraintsSolverType SolverType = ConstraintsSolverType.HybridJacobiGaussSeidel
 Defines which solver algorithm will be used by the Physics Engines. More...
 
Boolean UseAngularVelocity = true
 Lock the angular velocity for dynamic bodies. Disabling this option leads not only to faster but also to more stable physics simulation for games that can use it. More...
 
Boolean UseJoints = true
 Enable the use of joints in the physics engines. If joints are not used, this can be disabled to reduce overhead. More...
 
Boolean UseVerticalTransform = true
 Toggle the use of a vertical transform component for 2.5D worlds that have a simplified concept of height. More...
 

Detailed Description

Global physics settings which are part of the SimulationConfig.

Member Data Documentation

◆ Gravity

FPVector3 Quantum.PhysicsCommon.Config.Gravity = new FPVector3(FP._0, -FP._10, FP._0)

Define the gravity of the physics simulation. For a 2D world set the y-component to zero.

◆ SolverType

ConstraintsSolverType Quantum.PhysicsCommon.Config.SolverType = ConstraintsSolverType.HybridJacobiGaussSeidel

Defines which solver algorithm will be used by the Physics Engines.

◆ SolverIterations

Int32 Quantum.PhysicsCommon.Config.SolverIterations = 4

The physics collision solver runs in sub-steps to improve quality.

◆ PositionSolverIterations

Int32 Quantum.PhysicsCommon.Config.PositionSolverIterations = 2

The physics position constraint solver (used on Joint, for instance) runs in sub-steps to improve quality.

◆ UseJoints

Boolean Quantum.PhysicsCommon.Config.UseJoints = true

Enable the use of joints in the physics engines. If joints are not used, this can be disabled to reduce overhead.

◆ UseAngularVelocity

Boolean Quantum.PhysicsCommon.Config.UseAngularVelocity = true

Lock the angular velocity for dynamic bodies. Disabling this option leads not only to faster but also to more stable physics simulation for games that can use it.

◆ UseVerticalTransform

Boolean Quantum.PhysicsCommon.Config.UseVerticalTransform = true

Toggle the use of a vertical transform component for 2.5D worlds that have a simplified concept of height.

◆ PenetrationAllowance

FP Quantum.PhysicsCommon.Config.PenetrationAllowance = FP._0_01

Allow a certain degree of penetration to improve the stability of the physics simulation.

◆ PenetrationCorrection

FP Quantum.PhysicsCommon.Config.PenetrationCorrection = FP._0_50

How much of the exceeding penetration (above allowance) should be corrected in a single frame. 0 = no correction, 1 = full correction.

◆ MinLinearIntegration

FP Quantum.PhysicsCommon.Config.MinLinearIntegration = 0

A physics body's linear velocity component (x, y or z, the latter only in the 3D Physics) is rounded to 0 if its absolute value is smaller than this minimum linear integration. A small amount can increase the physics simulation stability and improve sleep detection.

◆ MinAngularIntegration

FP Quantum.PhysicsCommon.Config.MinAngularIntegration = 0

A physics body's angular velocity component (x, y or z in the 3D Physics and the amount relative to the vertical axis in the 2D Physics) is rounded to 0 if its absolute value is smaller than this minimum angular integration. A small amount can increase the physics simulation stability and improve sleep detection.

◆ SimplexMinBitShift

Int32 Quantum.PhysicsCommon.Config.SimplexMinBitShift = 0

Scales the GJK Voronoy Simplex space by shifting points' raw values. Consider increasing if working with small-scaled shapes.

◆ SimplexMaxBitShift

Int32 Quantum.PhysicsCommon.Config.SimplexMaxBitShift = 2

The GJK Voronoy Simplex space is scaled by progressively by shifting points' raw values up to this max value when the current instance becomes affine dependent, avoiding degenerate cases due to limited precision.

◆ ShapeCastMaxIterations

Int32 Quantum.PhysicsCommon.Config.ShapeCastMaxIterations = 16

The max number of iterations performed by the GJK algorithm while searching for a solution below ShapeCastHardTolerance.

◆ ShapeCastHardTolerance

FP Quantum.PhysicsCommon.Config.ShapeCastHardTolerance = FP.EN2

A GJK iteration result below this threshold is acceptable as a finishing condition. In general, increasing the hard tolerance decreases the accuracy of the result, but reduces computational cost by requiring less iterations.

◆ ShapeCastSoftTolerance

FP Quantum.PhysicsCommon.Config.ShapeCastSoftTolerance = FP._0_05

A GJK resolution that fails to find an acceptable result below ShapeCastHardTolerance after ShapeCastMaxIterations will still return positive if the best solution found is below this soft threshold.

◆ AllowSleeping

Boolean Quantum.PhysicsCommon.Config.AllowSleeping = false

Toggles the detection of physics bodies in a sleeping state. If allowed, the simulation will skip forces and velocity integrations and collisions detection on physics bodies while they are asleep.

◆ SleepTimeSec

FP Quantum.PhysicsCommon.Config.SleepTimeSec = FP._0_50

For how many seconds a physics body should stay under the linear and angular velocity sleeping thresholds before being put in a sleeping state.

◆ LinearSleepTolerance

FP Quantum.PhysicsCommon.Config.LinearSleepTolerance = FP._0_02

Amount of linear velocity below which a physics body might be considered as standing still for sleeping detection.

◆ AngularSleepToleranceInRad

FP Quantum.PhysicsCommon.Config.AngularSleepToleranceInRad = FP._2 * FP.Deg2Rad

Amount of angular velocity below which a physics body might be considered as standing still for sleeping detection.

◆ AllowCCD

bool Quantum.PhysicsCommon.Config.AllowCCD = false

Allows CCD to be performed if the Physics Body has CCD enabled on its Config flags.

◆ CCDLinearVelocityThreshold

FP Quantum.PhysicsCommon.Config.CCDLinearVelocityThreshold = FP._3

If CCD is allowed, it will be performed on all Physics Bodies that have it enabled and have a linear velocity magnitude above this threshold.

◆ CCDAngularVelocityThreshold

FP Quantum.PhysicsCommon.Config.CCDAngularVelocityThreshold = FP._3

If CCD is allowed, it will be performed on all Physics Bodies that have it enabled and have a angular velocity magnitude above this threshold.

◆ CCDDistanceTolerance

FP Quantum.PhysicsCommon.Config.CCDDistanceTolerance = FP.EN3

The absolute distance value below which the Physics Bodies under CCD check can be considered as touching.

◆ MaxTimeOfImpactIterations

int Quantum.PhysicsCommon.Config.MaxTimeOfImpactIterations = 16

The maximum number of iterations performed by the CCD algorithm when computing the time of impact between two Physics Bodies.

◆ MaxRootFindingIterations

int Quantum.PhysicsCommon.Config.MaxRootFindingIterations = 32

The maximum number of iterations performed when computing the point in time when the distance between two Physics Bodies in a given separation axis is below the tolerance.

◆ DefaultPhysicsMaterial

AssetRefPhysicsMaterial Quantum.PhysicsCommon.Config.DefaultPhysicsMaterial

The default PhysicsMaterial asset used when initializing a 2D or 3D physics collider component with no other material specified

◆ DefaultCharacterController2D

AssetRefCharacterController2DConfig Quantum.PhysicsCommon.Config.DefaultCharacterController2D

The default CharacterController2DConfig asset used when initializing a CharacterController2D component with no other config specified

◆ DefaultCharacterController3D

AssetRefCharacterController3DConfig Quantum.PhysicsCommon.Config.DefaultCharacterController3D

The default CharacterController3DConfig asset used when initializing a CharacterController3D component with no other config specified

◆ Layers

String [] Quantum.PhysicsCommon.Config.Layers

The collision layer names recognized by the Quantum simulation. Can be imported from Unity layers on the editor.

◆ LayerMatrix

Int32 [] Quantum.PhysicsCommon.Config.LayerMatrix

The collision matrix of the layers recognized by the Quantum simulation. Can be imported from Unity's layer matrix on the editor.