Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/three.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Three.js 如何在三个js中的多个场景之间切换_Three.js - Fatal编程技术网

Three.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:

我有一个菜单驱动的应用程序,可以显示三个不同的js场景。无论菜单选择如何,最先选择的菜单都将显示

您需要通过编程选择将哪个场景传递到
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(例如,在其上绘制一个矩形以清除它),并查看它是否确实在其上重画。