我试图在Three.js中使用FontLoader创建3D文本,但出现错误。
我使用Three.js r99。
const loader = new THREE.FontLoader();
//https://github.com/mrdoob/three.js/tree/dev/examples/fonts
loader.load("./fonts/helvetiker_regular.typeface.json", function(font) {
const textGeometry = new THREE.TextGeometry("Hello!", {
font: font,
size: 20,
height: 5,
curveSegments: 12
});
const material = new THREE.MeshNormalMaterial();
const textMesh = new THREE.Mesh(textGeometry, material);
scene.add(textMesh);
});
Chrome开发者工具的输出如下。
THREE.FontLoader: typeface.js support is being deprecated. Use typeface.json instead.
VM5770:1 Uncaught SyntaxError: Unexpected token T in JSON at position 0
at JSON.parse (<anonymous>)
at Object.onLoad (three.module.js:39064)
at XMLHttpRequest.<anonymous> (three.module.js:33974)
VM 5770(?)似乎指向index.html的内容。 “ T”似乎是
的T<meta charset = "UTF-8" />.
我不知道发生了什么。有什么想法吗?
答案 0 :(得分:1)
我解决了这个问题。 原因是包裹,而不是Three.js。完美地将json文件复制到dist目录。