Physics System

The physics system is used to manage all physics related functions. Currently, it is responsible for synchronizing physical elements, triggering physics events and scheduling iterations of the physical world.

Physics World

When the physics world iterates, physical calculations will be made on physical elements, such as calculating whether each object collides and the force of the object. When the calculation is completed, the physics system will update the physics world to the scene world, so that the game objects will generate corresponding physical behaviors.

Note: there is only a single physical world, and the functional support of the multi-physics world will be discussed later.

Scene World and Physics World:

Scene World and Physics World

Properties

The properties of the physics system can only be set through the code for the time being. A setting panel will be added in the future, please pay attention to the update announcement.

Note: gets the instance of physics system using: PhysicsSystem.instance

PropertyDescription
enableWhether to enable the physics system, the default is true
gravityThe gravity value of the physics world, the default is (0, -10, 0)
allowSleepWhether to allow the physics system to automatically sleep, the default is true
maxSubStepsThe maximum number of physics simulation sub-steps per frame, the default is 2
fixedTimeStepThe time spent in each step of physics simulation, the default is 1/60, note that is not every frame
sleepThresholdThe default speed threshold for going to sleep, the default is 0.1
autoSimulationAutomatic simulation, the default is true
defaultMaterialGet the default physics material (read only)
raycastResultsGets the raycast test results (read only)
raycastClosestResultGets the raycastClosest test result (read only)
collisionMatrixGets the collision matrix (It’s used only for initialization)

Interfaces

PropertySignatureDescription
resetAccumulator(time=0)=>voidReset the accumulator of time to given value