import { useFrame, useThree } from "@react-three/fiber"; import { RefObject, useRef } from "react"; import { Object3D } from "three"; import { useWorldPosition } from "./useWorldPosition"; export function useDistanceFromCamera( ref: RefObject, ): RefObject { const { camera } = useThree(); const distanceRef = useRef(null); const worldPosRef = useWorldPosition(ref); useFrame(() => { if (!worldPosRef.current) { distanceRef.current = null; } else { distanceRef.current = camera.position.distanceTo(worldPosRef.current); } }); return distanceRef; }