Releases: pmndrs/react-three-rapier
Releases · pmndrs/react-three-rapier
@react-three/[email protected]
Patch Changes
- a71ede9: Update changeset settings
@react-three/[email protected]
Patch Changes
- c9e897a: Throw useful error when
usePhysics
used outside<Physics />
(@CodyJasonBennett)
@react-three/[email protected]
Patch Changes
- Updated dependencies [c9e897a]
- @react-three/[email protected]
@react-three/[email protected]
@react-three/[email protected]
Minor Changes
- 95a232b: Update deps
@react-three/[email protected]
Patch Changes
- Updated dependencies [c50783a]
- @react-three/[email protected]
@react-three/[email protected]
Minor Changes
- 95a232b: Update deps
Patch Changes
- Updated dependencies [95a232b]
- @react-three/[email protected]
@react-three/[email protected]
@react-three/[email protected]
Patch Changes
- Updated dependencies [787462d]
- @react-three/[email protected]
@react-three/[email protected]
Major Changes
-
6c764cc: Remove WorldApi, replace with singleton instance proxy (@wiledal)
BREAKING CHANGE: The
WorldApi
has been removed. Instead, you can now get a proxied singleton instance of the world from@react-three/rapier
. This is a breaking change, but it should be easy to migrate to.Before:
import { useRapier } from "@react-three/rapier"; const Component = () => { const { world } = useRapier(); useEffect(() => { // Access to the WorldApi (limited) world.raw().bodies.forEach(() => { // Do something }); // Access the raw Rapier World instance const rawWorldInstance = world.raw(); rawWorldInstance.raw().setGravity(new Vector3(0, -9.81, 0)); }, []); };
Now:
import { useRapier } from "@react-three/rapier"; const Component = () => { const { world } = useRapier(); useEffect(() => { // Access the Rapier World instance directly world.bodies.forEach(() => { // Do something }); world.setGravity(new Vector3(0, -9.81, 0)); }, []); };
Note: it is best to avoid accessing properties and methods on the world outside of
useEffect
in order for the world to be properly synchronized with the React component lifecycle.// bad const Component = () => { const {world} = useRapier() world.setGravity(...) return null } // good const Component = () => { const {world} = useRapier() useEffect(() => { world.setGravity(...) }, []) return null }
Minor Changes
- 93c7e8c: Add missing RoundCylinderCollider and RoundConeCollider (@wiledal)
- c4d2446: Deprecate Vector3Array for Vector3Tuple (@wiledal)
- af27f83: Add integrationProperties as mutable props on Physics (@wiledal)