Three.js 如何在三个js中的多个场景之间切换
我有一个菜单驱动的应用程序,可以显示三个不同的js场景。无论菜单选择如何,最先选择的菜单都将显示 您需要通过编程选择将哪个场景传递到Three.js 如何在三个js中的多个场景之间切换,three.js,Three.js,我有一个菜单驱动的应用程序,可以显示三个不同的js场景。无论菜单选择如何,最先选择的菜单都将显示 您需要通过编程选择将哪个场景传递到render函数中。例如,假设我们有scene1、scene2和scene3 var sceneIndex = 2; var currentScene = null; switch (sceneIndex) { case 1: currentScene = scene1; break; case 2:
render
函数中。例如,假设我们有scene1
、scene2
和scene3
var sceneIndex = 2;
var currentScene = null;
switch (sceneIndex) {
case 1:
currentScene = scene1;
break;
case 2:
currentScene = scene2;
break;
case 3:
currentScene = scene3;
break;
}
renderer.render(currentScene, camera);
当然,还有更优雅的方法可以做到这一点。您需要通过编程选择将哪个场景传递到
渲染
函数中。例如,假设我们有scene1
、scene2
和scene3
var sceneIndex = 2;
var currentScene = null;
switch (sceneIndex) {
case 1:
currentScene = scene1;
break;
case 2:
currentScene = scene2;
break;
case 3:
currentScene = scene3;
break;
}
renderer.render(currentScene, camera);
当然,还有更优雅的方法可以做到这一点。我个人更喜欢一些数组选择,比如“''scenes=[scene1,scene2,scene3,…],这样你就可以很容易地说render.render(scenes[sceneIndex],camera)这将根据你想要处理的场景数量来调整切换树。谢谢。但是,我创建了一个场景组数组:场景组[0]、场景组[1]等等,每个场景都不同。如果我首先导致renderer.render(场景组[1],摄影机),我将获得适当的场景。如果我随后导致renderer.render(场景组[0],摄影机),我仍然会得到前者。情况应该不是这样。是否已验证
场景组中的值是否正确?是。颠倒顺序可以验证场景。无论哪个场景先渲染,都会保持渲染器没有释放渲染的第一个场景。是否为每个场景使用不同的摄影机?我不知道这是否必要,但这可能会有所不同。您可以尝试的另一件事是手动修改渲染器的画布DomeElement(例如,在其上绘制一个矩形以清除它),并查看它是否真的在上面重画。我个人更喜欢一些数组选择,如“'''scenes=[scene1,scene2,scene3,…],这样您就可以轻松地说render.render(scenes[sceneIndex],camera)这将根据您想要处理的场景数量来调整切换树。谢谢。但是,我创建了一个场景组数组:场景组[0]、场景组[1]等等,每个场景都不同。如果我首先导致renderer.render(场景组[1],摄影机),我将获得适当的场景。如果我随后导致renderer.render(场景组[0],摄影机),我仍然会得到前者。情况应该不是这样。是否已验证场景组中的值是否正确?是。颠倒顺序可以验证场景。无论哪个场景先渲染,都会保持渲染器没有释放渲染的第一个场景。是否为每个场景使用不同的摄影机?我不知道这是否必要,但这可能会有所不同。您可以尝试的另一件事是手动修改渲染器的canvas DomeElement(例如,在其上绘制一个矩形以清除它),并查看它是否确实在其上重画。