如何在Verold脚本中获取three.js sprite

时间:2014-10-09 00:50:22

标签: javascript three.js verold

首先发布堆栈溢出...

我一直在使用名为verold的基于three.js的世界编辑器。它有一些很棒的功能,但我遇到了脚本设置的问题。

我正在尝试实现THREE.Sprite()并将其作为对象的一个​​组件附加。

这是我尝试过的:

 Component.prototype.objectCreated = function() {
  // this.getThreeData() is available

   this.spriteimage.load({
    load:_.bind(function() {
    this.createImageSprite();
    }, this)
   });
 };


Component.prototype.createImageSprite = function(){

  //Load the spriteimage
  var map = this.spriteimage.threeData;
  var spriteMaterial = new THREE.SpriteMaterial( { map: map, color: "rgb(255,0,0)", fog: true, useScreenCoordinates: false} );
  var mySprite = new THREE.Sprite( spriteMaterial );
  mySprite.scale.set(1,1,1);
  mySprite.location.x = 0.5;
  mySprite.location.y = 0.5;
  mySprite.location.y = 0.5;

  scene.add(mySprite);
};

该脚本有一个名为 spriteimage 的属性,它是一个verold资产 - > 2D纹理。

当此脚本作为场景的一个组件添加时,项目会运行,但您根本看不到精灵。

我已经尝试在常规的three.js项目中成功复制此代码。

有人可以为此提供解决方案吗?

感谢。

1 个答案:

答案 0 :(得分:2)

您的代码存在一些小问题。否则,它工作正常。 首先,mySprite.location应为mySprite.position。也许早期版本的Three.JS使用了' location'?

第二个问题是对场景的引用'没有定义。在脚本中,您可以调用' this.getThreeScene()'返回对THREE.Scene的引用,该脚本所附加的对象是。

的一部分