diff --git a/src/document/migrate-scene-document.ts b/src/document/migrate-scene-document.ts index 7508ae4d..3e61ef59 100644 --- a/src/document/migrate-scene-document.ts +++ b/src/document/migrate-scene-document.ts @@ -29,6 +29,7 @@ import { createCameraRigPlayerTargetRef, createCameraRigWorldPointTargetRef, DEFAULT_PLAYER_START_GAMEPAD_BINDINGS, + DEFAULT_PLAYER_START_INTERACTION_REACH_METERS, DEFAULT_PLAYER_START_KEYBOARD_BINDINGS, createNpcAlwaysPresence, createNpcEntity, @@ -3299,6 +3300,11 @@ function readPlayerStartEntity(value: unknown, label: string): EntityInstance { value.navigationMode, `${label}.navigationMode` ), + interactionReachMeters: readOptionalPositiveFiniteNumber( + value.interactionReachMeters, + `${label}.interactionReachMeters`, + DEFAULT_PLAYER_START_INTERACTION_REACH_METERS + ), movementTemplate: readPlayerStartMovementTemplate( value.movementTemplate, `${label}.movementTemplate` diff --git a/src/runtime-three/runtime-scene-build.ts b/src/runtime-three/runtime-scene-build.ts index 73936159..8a69ed9b 100644 --- a/src/runtime-three/runtime-scene-build.ts +++ b/src/runtime-three/runtime-scene-build.ts @@ -278,6 +278,7 @@ export interface RuntimePlayerStart { position: Vec3; yawDegrees: number; navigationMode: RuntimeNavigationMode; + interactionReachMeters: number; movement: RuntimePlayerMovement; inputBindings: PlayerStartInputBindings; collider: FirstPersonPlayerShape; @@ -1591,6 +1592,7 @@ function buildRuntimeSceneCollections( position: cloneVec3(entity.position), yawDegrees: entity.yawDegrees, navigationMode: entity.navigationMode, + interactionReachMeters: entity.interactionReachMeters, movement: buildRuntimePlayerMovement(entity.movementTemplate), inputBindings: clonePlayerStartInputBindings(entity.inputBindings), collider: buildRuntimePlayerShape(entity) @@ -1987,6 +1989,7 @@ export function buildRuntimeSceneFromDocument( position: cloneVec3(playerStartEntity.position), yawDegrees: playerStartEntity.yawDegrees, navigationMode, + interactionReachMeters: playerStartEntity.interactionReachMeters, movement: cloneRuntimePlayerMovement(playerMovement), inputBindings: clonePlayerStartInputBindings(playerInputBindings), collider: playerCollider