19 KiB
Release Notes
All notable changes to this project will be documented in this file.
[Samples Project for 0.51.0-preview.32] - 2022-06-30
Changes
- Packages:
- Updated com.unity.physics from
0.50.0-preview.24
to0.51.0-preview.32
- Updated com.havok.physics from
0.50.0-preview.24
to0.51.0-preview.32
- Updated com.unity.collections from
1.2.3-pre.24
to1.3.1
- Updated com.unity.entities from
0.50.0-preview.24
to0.51.0-preview.32
- Updated com.unity.jobs from
0.50.0-preview.8
to0.51.0-preview.32
- Updated com.unity.rendering.hybrid from
0.50.0-preview.24
to0.51.0-preview.32
- Updated com.unity.render-pipelines.universal from
10.8.1
to12.1.7
- Updated com.unity.physics from
- Editor:
- Updated Editor version from
2020.3.30f1
to2021.3.4f1
- Updated Editor version from
- Documentation:
- Updated Documentation folder has been renamed to READMEimages and Samples.md has been renamed to README.md.
- Shader PhysicsStatic material has been disabled due to some rendering errors with
2021.3.4f1
a new material substitutes the shader while the errors gets fixed. - Updated NativeHashMap to NativeParallelHashMap.
Fixes
Known Issues
[Samples Project for 0.50.0-preview.24] - 2022-03-25
Changes
- Project:
- Updated project name from UnityPhysicsSamples to PhysicsSamples.
- add urp to the project.
- upgrade shaders so they are urp compatible.
- cleanup Shaders/PhysicsStaticInputs.hlsl and Shaders/PhysicsStatic.shader + add materials.
- Packages:
- Updated com.unity.physics to
0.50.0-preview.24
- Updated com.havok.physics to
0.50.0-preview.24
- Updated com.unity.collections to
1.2.3-pre.24
- Updated com.unity.entities to
0.50.0-preview.24
- Updated com.unity.jobs to
0.50.0-preview.8
- Updated com.unity.rendering.hybrid to
0.50.0-preview.24
- Updated com.unity.render-pipelines.universal to
10.8.1
- Updated com.unity.physics to
Fixes
- fixed materials for all demos
- fixed up ragdoll parts scale based on collider mesh bounds
- fixed material colors
Known Issues
[Samples Project for 0.10.0-preview] - 2021-12-31
Changes
- Added
ImmediatePhysicsWorldStepper
utility class for running physics simulation immediately on the current thread. - Changed
ProjectIntoFutureOnCueSystem
in Pool demo to useImmediatePhysicsWorldStepper
. - Added Assets/Tests/MultipleWorlds/Animation/Animation scene that shows how you can use a separate
PhysicsWorld
to simulate a small number of non-critical bodies for animation purposes (character's ponytail and scabbard).DriveAnimationBodySystem
syncs critical bodies between default and side physics world (character's head and torso) and prepares the data for non-critical bodies (position and velocity correction for ponytail and scabbard).AnimationPhysicsSystem
performs single-threadedPhysicsWorld
building, simulation and export to ECS components. The demo shows 2 variants of physically animated ponytail: with position and velocity corrections (green) and without them (blue). - Added Assets/Tests/MultipleWorlds/ClientServer/ClientServer scene as a simplified client-server sample, with game-critical ghost bodies (exist on both server and client) and client-only bodies that are simulated only locally to add to game's visual appeal.
Bodies in server physics world are simulated first (would be predicted based on server data in real use-cases) and then mirrored into the default physics world. Default physics world contains ghost and client-only bodies, where ghost bodies are driven by their server counterparts (game objects are linked via Server Entity setting in Drive Ghost Body Authoring script).
DriveGhostBodySystem
drives ghost bodies by position or velocity, the ratio (position vs velocity) is determined by First Order Gain setting in Drive Ghost Body Authoring script on the client ghost body game object.ServerPhysicsSystem
is the key system that builds, simulates and exports server physics world. The demo shows different kinematic bars (client-only, dynamic and kinematic ghost) rotating and pushing various speheres around (client-only, dynamic and kinematic ghosts driven by position, velocity and both equally).
Fixes
Known Issues
[Samples Project for 0.9.0-preview.4] - 2021-05-19
Changes
- Dependencies
- Updated Data Flow Graph to
0.21.0-preview.1
- Updated IDE Visual Studio to
2.0.7
- Updated Hybrid Renderer
0.13.0-preview.30
- Updated Data Flow Graph to
Fixes
Known Issues
[Samples Project for 0.8.0-preview] - 2021-03-26
Changes
-
Dependencies
- Updated DOTS Editor from
0.13.0-preview
to0.14.0-preview.1
- Updated Hybrid Renderer from
0.12.0-preview.42
to0.13.0-preview.17
- Updated Burst from
1.4.4
to1.5.0
- Updated DOTS Editor from
-
Refactored the
CollisionEvent
andTriggerEvent
demos to make the Stateful events clearer.- To add stateful events to your own project copy all scripts from the Stateful folder.
- Then, if you want to have collision events:
- Use the 'Collide Raise Collision Events' option of the 'Collision Response' property of a
PhysicsShapeAuthoring
component, and - Add a
StatefulCollisionEventBufferAuthoring
component to that entity (and select if details should be calculated or not) - At runtime, read from the dynamic buffer of
StatefulCollisionEvent
s
- Use the 'Collide Raise Collision Events' option of the 'Collision Response' property of a
- Alternatively, if you want to have trigger events:
- Use the 'Raise Trigger Events' option of the 'Collision Response' property of a
PhysicsShapeAuthoring
component, and - Add a
StatefulTriggerEventBufferAuthoring
component to that entity - At runtime, read from the dynamic buffer of
StatefulTriggerEvent
s
- Use the 'Raise Trigger Events' option of the 'Collision Response' property of a
[Samples Project for 0.7.0-preview.3] - 2021-02-24
Changes
-
Dependencies
- Updated Data Flow Graph from
0.18.0-preview.3
to0.20.0-preview.4
- Updated DOTS Editor from
0.12.0-preview.4
to0.13.0-preview
- Updated Hybrid Renderer from
0.10.0-preview.21
to0.12.0-preview.42
- Updated Coding from
0.1.0-preview.17
to0.1.0-preview.20
- Updated Data Flow Graph from
-
Added a new
MouseHoverAuthoring
script to help highlight the extraCompoundCollider.Child.Entity
field andPhysicsRenderEntity
component data. Check out the simple1b. Representations
and more complex2a2. Collider Parade - Advanced
demos scene for example of setup variations. -
Added
Tests/VelocityClipping/VelocityClippingStacking
demo to showcase a simple replacement for the removedSimulationCallbacks.Phase.PostSolveJacobians
. This demo does a really simple velocity clipping and the point is not to showcase stacking (which is covered withTests/Stacking
demos) but instead to show how to achieve the effect similar to previous callback without using the callback itself. -
Added
Tests/SystemScheduling/SchedulingSample
which shows how jobs that interact with physics runtime data (stored in PhysicsWorld) should be scheduled.
Fixes
- Fixed a bug where duplicate joint Entities were created when multiple joint components are added to the same game object.
Known Issues
[Samples Project for 0.6.0-preview.3] - 2021-01-18
Changes
- Dependencies
- Updated Data Flow Graph from
0.18.0-preview.3
to0.19.0-preview.5
- Updated DOTS Editor from
0.9.0-preview.1
to0.12.0-preview.4
- Updated Hybrid Renderer from
0.10.0-preview.21
to0.11.0-preview.40
- Updated Data Flow Graph from
- Added
5g. Change Collider Filter
sample showing explosion use case and the importance of collision filters in that case. Setting the force to 0 inSpawnExplosionAuthoring
causes a performance spike because when the filters get set to default, a lot of bodies are pentetrating each other.
Fixes
Known Issues
[Samples Project for 0.5.1-preview.2] - 2020-10-14
Changes
- Dependencies
- Updated Hybrid Renderer from
0.7.0-preview.24
to0.10.0-preview.21
- Updated Data Flow Graph from
0.16.0-preview.3
to0.18.0-preview.1
- Updated Hybrid Renderer from
- All demos now have a target frame rate of 60HZ.
Fixes
Known Issues
[Samples Project for 0.5.0-preview] - 2020-09-15
Changes
- Moved
LimitDOF
joint into core Unity Physics package
Fixes
- Fixed issue with the
FreeHingeJoint.Create
authoring script not setting theBodyFrame.PerpendicularAxis
Known Issues
RaycastCar
demo has issues that sometimes produce NaN values.
[Samples Project for 0.4.1-preview] - 2020-07-28
Changes
- Added simple
1b. Respresentations
sample highlighting graphical and physical representations of the world. - Added simple
1c. Conversion
sample, along with worked examples moving from GameObjects (Data & Logic) to DOTS.- New
1c1. GameObjects GravityWell
sample - showing Data conversion working but not Logic conversion. - New
1c2. Covertible GravityWell
sample - showing Data & Logic conversion. - New
1c3. DOTS GravityWell
sample - showing same scene without GameObject conversion.
- New
- Updated
2a2. Collider Parade - Advanced
sample with extra setup samples involving multiple graphics mesh and/or multiple physics shapes. - Updated
4. Joints\Ragdoll
demo to use new ragdoll joint interface and allow modification of joint limits. - Added
5d. Change Velocity
demo showing a local velocity change. - Added
5f. Change Surface Velocity
sample highlighting a conveyor belt use case with no moving parts.
[Samples Project for 0.4.0-preview.5] - 2020-06-18
Changes
- Updated the following packages:
- Added Data Flow Graph
0.14.0-preview.2
- Added DOTS Editor
0.7.0-preview.1
- Hybrid Renderer from
0.4.0-preview.8
to0.5.1-preview.18
- Added Data Flow Graph
- The
PrismaticJoint
example no longer includesMinDistanceFromAxis
orMaxDistanceFromAxis
parameters. - The
RagdollJoint
example now takes perpendicular limits in the range of (-90, 90) rather than (0, 180). - Added
5d. Kinematic Motion
to illustrate different ways of moving kinematic bodies. - Improved usability of trigger events and collision events:
- Events (StatefulTriggerEvent and StatefulCollisionEvent) have states indicating overlap or colliding state of two bodies:
- Enter - the bodies didn't overlap or collide in the previous frame, and they do in the current frame
- Stay - the bodies did overlap or collide in the previous frame, and they do in the current frame
- Exit - the bodies did overlap or collide in the previous frame, and they do not in the current frame
- Events (StatefulTriggerEvent and StatefulCollisionEvent) are stored in DynamicBuffers of entities that raise them
- Reworked following demos to demonstrate new trigger event approach:
2d1a. Triggers - Change Material
2d1b. Triggers - Portals
2d1c. Triggers - Force Field
2d2a. Collision Events - Event States
added to demonstrate new collision event approach.
- Events (StatefulTriggerEvent and StatefulCollisionEvent) have states indicating overlap or colliding state of two bodies:
- Exposed trigger events and collision events of CharacterController
- CharacterController body is now using a
CollisionResponse.None
collision response on its body to avoid reporting duplicated collision/trigger events coming from the physics engine. Demos/2. Setup/2b. Motion Properties/2b1. Motion Properties - Mass
,Tests/Pyramids
and a group of demos underTests/Stacking
now showcase new solver stabilization features/strengths and weaknesses/trade-offs.
[Samples Project for 0.3.2-preview] - 2020-04-16
Changes
- Updated the following packages:
- Removed DOTS Editor
- Hybrid Renderer from
0.3.4-preview.24
to0.4.0-preview.8
- Input System from
1.0.0-preview.5
to1.0.0-preview.6
- Fixed character controller tunnelling issue.
- Made standalone player quit (with exit code 1) if an exception is caught in BasePhysicsDemo or derived classes.
[Samples Project for 0.3.1-preview] - 2020-03-19
Changes
- Fixed a potential character controller tunnelling issue.
- Removed the Lightweight RP package.
[Samples Project for 0.3.0-preview] - 2020-03-12
Changes
- Joint samples now correctly add new joint entity to prefab's linked entity group so they will be instantiated along with the rest of a prefab.
- Renamed
StiffSpringJoint
toLimitedDistanceJoint
to reflect changes in API. - Updated the following packages
- Input System from
0.9.6-preview
to1.0.0-preview.5
- Lightweight RP from
7.1.6
to7.1.7
- DOTS Editor from
0.2.0-preview
to0.3.0-preview
- Hybrid Renderer from
0.3.3-preview.11
to0.3.4-preview.24
- Input System from
- Character controller improvements
CharacterControllerUtilities.CheckSupport()
now uses a collider cast- Character now doesn't collide with triggers, but raises trigger events instead
- Fixed the support check issue with slopes equal to MaxSlope
- Fixed the returned support state when there are no supporting planes
[Samples Project for 0.2.5-preview] - 2019-12-04
Changes
- Added
CharacterControllerAuthoring.MaxMovementSpeed
to avoid large velocities coming from penetration recovery. - Improved the behavior of character controller walking on multiple objects or mesh triangles:
- Fixed the problems with losing support state
- Fixed the problems with being unstable due to interaction with steep slopes
- Improved penetration recovery
- Character controller is now using native lists instead of native arrays for constraints and query hits to avoid large preallocations.
- Planet gravity sample now correctly randomizes mass of orbiting bodies.
[Samples Project for 0.2.4-preview] - 2019-09-19
Changes
- Fixed the issue with collider cast in character controller assuming ordered hits, potentially tunneling through objects.
- When opening the Project with Unity
2019.3
below0b5
it might be required to update the Lightweight RP package (com.unity.render-pipelines.lightweight) to version7.0.1
and reimport theAssets/Common
folder.
[Samples Project for 0.2.2-preview] - 2019-09-06
Changes
- Character controller changes include:
- Character controller demo scenes merged into single scene.
- Character controller can now use any collision filter, as opposed to previously being forced to set it to 'Nothing'.
- Default max slope to climb is now 60 degrees.
- Character controller can now use any collider, instead of previously being forced to use capsule.
- Fixed a race condition problem with scheduling character controller jobs when their data is in multiple chunks.
- Simple collisions between characters are now supported (not going through each other).
- KeepDistance with a default of 2cm has been added to avoid character getting stuck in narrow passages.
- User input is now projected onto supporting surface, incorporating its velocity into input.
- CharacterControllerUtilities.CheckSupport() has been deprecated. Use the new CheckSupport() method that outputs the surface info.
- CharacterControllerUtilities.CollideAndIntegrate() has been deprecated. Use the new CollideAndIntegrate() method that takes numConstraints as input.
- Menu loader scene now supports keyboard and controller input. Controller input now maps correctly across platforms. Controls have been updated to the following:
- Keyboard/Mouse
- UI:
- Arrow keys to navigate
- [Return] to select
- Character Controller
- [WASD] to move
- Mouse look
- [Space] to jump
- [LMB/Ctrl] to shoot
- Vehicle
- [WS] to accelerate/decelerate
- [AD] to steer
- [Left/Right] arrows to look
- [Left/RightBracket] to switch cars
- UI:
- Controller:
- UI
- D-Pad to navigate
- [West] to select
- Character Controller
- Left Stick to move
- Right Stick look
- [South] to jump
- [Right Trigger] to shoot
- Vehicle
- [Left/Right Trigger] to accelerate/decelerate
- Left Stick to steer
- Right Stick arrows to look
- [Left/Right Bumper] to switch cars
- UI
- Keyboard/Mouse
Opening the Project with different Unity Editor versions
- To open the project with Unity
2019.3.0b1
or later, it is currently required to upgrade the following packages:- Hybrid Renderer (com.unity.rendering.hybrid) has to be upgraded to
0.1.1-preview
- Lightweight RP (com.unity.render-pipelines.lightweight) has to be updated to version
7.0.1
- A reimport of the materials might be required when this is done while the Unity Editor is opened.
- Hybrid Renderer (com.unity.rendering.hybrid) has to be upgraded to
[Samples Project for 0.2.0-preview] - 2019-07-18
Changes
5a. Change Motion Type
demo illustrating how to swap the motion type of a rigid body.5b. Change Collider Size
demo shows how to dynamically resize a sphere collider.5c. Change Collider Type
demo shows a body's collider changing between a cube and a sphere.- Removed
4c. Newton's Cradle
demo - Removed
4d. Abacus
demo - Added a loader scene to more easily test all examples on a device.
[Samples Project for 0.1.0-preview] - 2019-05-31
Changes
-
1. Hello World
now uses convex hulls for letters. -
2b1. Motion Properties - Mass
shows a number of seesaws in anticipation of future stacking improvements. -
2b6. Motion Properties - Inertia Tensor
adds an example of infinite mass dynamic objects - i.e lock rotations. -
2c2. Material Properties - Restitution
shows the changes to the restitution model, with complex bodies bouncing more with high restitution values. -
2c3. Material Properties - Collision Filters
shows the filtering setup between potentially colliding objects -
2d1. Events - Triggers
shows a simple trigger use case that changes a bodies gravity fractor when inside the volume.- The more advanced trigger use cases capture state such as Entering, Overlapping and Leaving a trigger volume.
2d1. Triggers - Change Material
shows set of triggers that change a bodies material when they enter the trigger volume.2d2. Triggers - Portals
shows set of triggers that transform a body to a new location and orientation while preserving local velocity.2d3. Triggers - Force Field
shows a trigger volume acting and a tornado moving through the world.
-
2d2. Events - Contacts
shows a simple collision event used to apply an impulse to any body colliding with the tagged 'repulsor' body. -
4a. Joints Parade
demo shows the Prismatic Joint now locks rotation. -
4b. Limit DOF
demo shows the new Limit DOF Joint, locking body rotation and translation to various axes. -
4c. Newton's Cradle
demo shows how to cheat collision response to create a desktop toy. -
4d. Abacus
shows a desktop toy as an extreme test of the Limit DOF Joint. -
5. Modify
demos have been changed to use the new jobify approach to modifying simulation data. -
Mouse Pick Behavior now ignores Static and Trigger bodies, illustrating a custom hit collector.
-
Joint Editors now lock the connected body offset to the local offsets, as suggested by the UI.
-
Debug Display changes include:
- Colliders are displayed as solid.
- Collider Edges can be display independent of solid Colliders.
- Trigger events draw connecting line between overlapping bodies.
- Collision events draw impulse half-way between colliding bodies.
-
Various tests have been added to confirm API changes and as comparisons for WIP and the upcoming Havok Physics release.
[Samples Project for 0.0.2-preview] - 2019-04-08
Changes
- Character controller now has a max slope constraint to avoid climbing slopes that are too steep.
- Character controller now does another query to check if position returned by the solver can be reached.
[Samples Project for 0.0.1-preview] - 2019-03-12
- Initial package version and sample project.