我有一个工作正常的代码但是当我启用WebGL时它停止工作。 一般来说,我有一个函数,每个frameRate调整我的对象的大小。
function animate(){
window.requestAnimationFrame(animate);
s.setPosition(s.x - 1, s.y - 1, 0);
}
s.prototype.setPosition = function(x, y, z) {
this.x = x;
this.y = y;
this.z = z;
this.squareMesh.geometry.vertices[0].set( x, y, z);
this.squareMesh.geometry.vertices[1].set( x + this.w - 1, y, z);
this.squareMesh.geometry.vertices[2].set( x + this.w - 1, y - this.h + 1, z);
this.squareMesh.geometry.vertices[3].set( x, y - this.h + 1, z);
}
这很好用,直到我启用了WebGl。启用时,对象没有任何反应,似乎值不会更新。
当我使用像
这样的功能时 obj.position.x = s.x +1
它有效。
但这会导致其他问题,例如每个对象的0 0 0位置。我在这里提到了这个问题:Three.js, WebGl Object position
答案 0 :(得分:0)
请参阅https://github.com/mrdoob/three.js/wiki/Updates
这应该告诉Three.js顶点被更改并需要刷新:
this.squareMesh.geometry.verticesNeedUpdate = true;