@@ -42,19 +42,11 @@ function PhysicsHandle({ children }: { children?: ReactNode }) {
42
42
const ref = useRef < RapierRigidBody > ( null )
43
43
const groupRef = useRef < Group > ( null )
44
44
const targetRef = useMemo (
45
- ( ) =>
46
- new Proxy < RefObject < Object3D > > (
47
- { current : null } ,
48
- {
49
- get ( ) {
50
- return groupRef . current ?. parent
51
- } ,
52
- } ,
53
- ) ,
45
+ ( ) => new Proxy < RefObject < Object3D > > ( { current : null } , { get : ( ) => groupRef . current ?. parent } ) ,
54
46
[ ] ,
55
47
)
56
48
return (
57
- < RigidBody ref = { ref } colliders = "trimesh" position = { [ 0 , 1 , 0 ] } >
49
+ < RigidBody ref = { ref } colliders = "trimesh" type = "dynamic" position = { [ 0 , 1 , 0 ] } >
58
50
< group ref = { groupRef } >
59
51
< Handle
60
52
multitouch = { false }
@@ -66,22 +58,20 @@ function PhysicsHandle({ children }: { children?: ReactNode }) {
66
58
if ( rigidBody == null ) {
67
59
return
68
60
}
69
- if ( state . first ) {
70
- rigidBody . setBodyType ( RigidBodyType . KinematicPositionBased , true )
71
- }
72
61
if ( state . last ) {
73
62
rigidBody . setBodyType ( RigidBodyType . Dynamic , true )
74
- /*
75
- doesnt work yet. Probably because of:https://github.com/pmndrs/xr/issues/383
76
63
if ( state . delta != null ) {
77
- rigidBody.setLinvel(state.delta.position.clone().divideScalar(deltaTime), true)
64
+ const deltaTime = state . delta . time
65
+ const deltaPosition = state . delta . position . clone ( ) . divideScalar ( deltaTime )
66
+ rigidBody . setLinvel ( deltaPosition , true )
78
67
const deltaRotation = state . delta . rotation . clone ( )
79
68
deltaRotation . x /= deltaTime
80
69
deltaRotation . y /= deltaTime
81
70
deltaRotation . z /= deltaTime
82
71
rigidBody . setAngvel ( deltaRotation , true )
83
- }*/
72
+ }
84
73
} else {
74
+ rigidBody . setBodyType ( RigidBodyType . KinematicPositionBased , true )
85
75
rigidBody . setRotation ( state . current . quaternion , true )
86
76
rigidBody . setTranslation ( state . current . position , true )
87
77
}
0 commit comments