Skip to main content

Movable Element

Type

Class

Default Usage

import { Scene, Movable } from 'react-three-lite'
import { GLTFLoader } from 'react-three-lite'

function App() {
const handleCreated = async (scene, { camera }) => {
camera.position.set(0, 1.5, 3)

// Load model using the function version of GLTFLoader
const model = await GLTFLoader('/models/perseverance-draco.glb', true)
model.scale.set(0.8, 0.8, 0.8)
scene.add(model)

// Create movable element starting at [0, 0, -1]
const element = new Movable(model, [0, 0, -1])

// Move the model to [0, 0, 0] over 10 seconds
element.moveTo([0, 0, 0], 10000)
}

return (
<Scene
style={{ marginTop: '10px', width: '100%', height: '300px' }}
onCreated={handleCreated}
/>
)
}

Props

NameTypeDescription
sceneTHREE.GroupThe model to be displayed and moved.

Methods

NameParametersDescription
constructor(model: THREE.Group, position: [number, number, number]) => void
moveTo(position: [number, number, number], duration: number) => voidduration is the duration from one position to another. The unit is millisecond.