three.js编辑器不会执行位置更改脚本

时间:2017-07-13 22:53:34

标签: javascript three.js

免责声明:我正在使用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;
}

我在编辑器上找不到关于谷歌的任何信息,所以我在这里...任何帮助或指导文档将不胜感激。

2 个答案:

答案 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

您可以了解有关控制台herehere

的更多信息