mylingo3d
Version:
Lingo3D is a React/Vue 3d game development framework that ships with a complete visual editor
25 lines (20 loc) • 827 B
text/typescript
import { createEffect } from "@lincode/reactivity"
import { SkeletonHelper } from "three"
import Loaded from "../display/core/Loaded"
import { skinnedMeshSet } from "../display/utils/cloneSkinnedMesh"
import { getCameraRendered } from "../states/useCameraRendered"
import { getSelectionTarget } from "../states/useSelectionTarget"
import mainCamera from "./mainCamera"
import scene from "./scene"
createEffect(() => {
const target = getSelectionTarget()
if (!(target instanceof Loaded) || getCameraRendered() !== mainCamera)
return
const skinnedMesh = target.loadedGroup.children[0]
if (!skinnedMeshSet.has(skinnedMesh)) return
const helper = new SkeletonHelper(skinnedMesh)
scene.add(helper)
return () => {
scene.remove(helper)
}
}, [getSelectionTarget, getCameraRendered])