我是Three.js的新手,我不太了解模型加载。
我有这个函数创建一个块,另一个函数构造它。
function initThreeAgent()
{
var shape = new THREE.BoxGeometry( squaresize, squaresize, squaresize );
theagent = new THREE.Mesh( shape );
theagent.material.color.setHex( BLANKCOLOR );
drawAgent();
}
但是让我说我不希望这是一个盒子,我希望它是一个.json模型。我知道我必须使用这样的东西,但我不能完全把它放在一起。
var loader = new THREE.JSONLoader();
loader.load( '/uploads/SeanHutchinson/Sporty_Man.json', function ( geometry ) {
var mesh = new THREE.Mesh( geometry, new THREE.MeshBasicMaterial() );
如何更改initThreeAgent函数以使用上述模型? 谢谢!
答案 0 :(得分:1)
如果你已经达到了上述代码,你可能已经尝试过了,但这里有一些小修正:
function initThreeAgent() {
var loader = new THREE.JSONLoader();
function loaded(geometry) {
theagent = new THREE.Mesh(geometry, new THREE.MeshBasicMaterial());
theagent.material.color.setHex(BLANKCOLOR);
drawAgent();
}
loader.load('/uploads/SeanHutchinson/Sporty_Man.json', loaded);
}
这里有一些警告,我假设你在其他地方做过:
theAgent
需要添加到场景中loaded
函数分解了。如果愿意,您可以将其移回加载呼叫。drawAgent
的调用需要在回调中,因为加载方法是异步的,加载大型模型可能需要一些时间。