虽然我不是 javascript 专家,但我已经使用了 Three.js 几个月了(我的主文件夹中有“three.js”脚本),我想使用 BufferGeometryUtils 中的一个函数。我尝试使用相同的技术,但没有奏效,并且出现此错误:“未捕获的 ReferenceError:BufferGeometry 未在 Object.mergeBufferGeometries (BufferGeometryUtils.js:202) 中定义”(我的three.js 版本只有几周老的)。我看到另一篇关于这个问题的帖子,但它对我不起作用,因为它是 Three.js 的旧版本。那么我该如何在我的脚本中使用这些函数呢?
THREE.BufferGeometryUtils 不是核心的一部分,但您可以轻松导入实用程序,如下所示:
import { BufferGeometryUtils } from 'three/examples/jsm/utils/BufferGeometryUtils.js';
Run Code Online (Sandbox Code Playgroud)
如您所见,该类是JSM库的一部分,这意味着它可以作为模块使用。
three.js R104
似乎工作正常。
这一定是您包含文件的方式,或者可能是您正在转译的方式?
你的问题确实没有足够的细节。
var geometry1 = new THREE.CircleBufferGeometry( 5, 32 );
var geometry2 = new THREE.CircleBufferGeometry( 5, 32 );
var merged = THREE.BufferGeometryUtils.mergeBufferGeometries([geometry1, geometry2]);
console.log(merged);Run Code Online (Sandbox Code Playgroud)
<script src="https://rawgithub.com/mrdoob/three.js/r104/build/three.js"></script>
<script src="https://rawgithub.com/mrdoob/three.js/r104/examples/js/utils/BufferGeometryUtils.js"></script>Run Code Online (Sandbox Code Playgroud)