免责声明:我正在使用three.js编辑器(https://threejs.org/editor/)作为ide来创建一个包含6个对象和6个方向灯的动画3D场景。场景本身将导出和显示,而不进行任何动画/位置更改。 当我尝试在下面添加此脚本来编辑对象的xy位置时,按下播放时场景将不会显示。
var box = this.getObjectByName ('box');
var filledTube =this.getObjectByName('filledTube');
var ball =this.getObjectByName('ball');
var dice =this.getObjectByName('dice');
var tube =this.getObjectByName('tube');
var knot=this.getObjectByName('knot');
var blue1=this.getObjectByName('blue');
var blue2=this.getObjectByName('blue2');
var red1=this.getObjectByName('red');
var red2=this.getObjectByName('red2');
var green1=this.getObjectByName('green');
var green2=this.getObjectByName('green2');
function update( event ) {
var time = (event.time*.01);
box.position.x=-time;
box.position.y=-time;
filledTube.position.x=-time;
filledTube.position.y=-time;
ball.position.x=-time;
ball.position.y=-time;
dice.position.x=-time;
dice.position.y=-time;
tube.position.x=-time;
tube.position.y=-time;
knot.position.x=-time;
knot.position.y=-time;
blue1.position.x=+time;
blue1.position.y=+time;
blue2.position.x=+time;
blue2.position.y=+time;
red1.position.x=+time;
red1.position.y=+time;
red2.position.x=+time;
red2.position.y=+time;
green1.position.x=+time;
green1.position.y=+time;
green2.position.x=+time;
green2.position.y=+time;
}
我在编辑器上找不到关于谷歌的任何信息,所以我在这里...任何帮助或指导文档将不胜感激。
答案 0 :(得分:0)
在update函数中尝试event.delta而不是event.time。我的猜测是所有物体都在快速移动。
所以在更新功能中:
var time = (event.delta*.01);
祝你好运!
答案 1 :(得分:0)
该脚本有效,可能会踢#34;一切都很遥远,在视野之外。 原因是event.time值非常大,即使它们是分开的。
要查看这些对象,并在场景中移动它们,请尝试以下方法:
var speed = 0.02;
box.position.x += speed; // adds 0.02 to the current box x position value
box.position.y -= speed; // subtracts 0.02 to the current box y position value
一个不错的工具,即浏览器控制台,可以帮助您跟踪值(例如:event.time)并解决问题。
例如:在更新功能中添加以下行,并亲自查看巨大的时间值。
console.log(event.time); // outputs time values
的更多信息