javascript - 如何在 Verold 脚本中获取 Three.js sprite

标签 javascript three.js verold

第一篇关于堆栈溢出的文章...

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

我正在尝试实现 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 纹理。

当将此脚本添加为场景的组件时,项目会运行,但您根本看不到 Sprite 。

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

谁能提供解决方案吗?

谢谢。

最佳答案

您的代码存在一些小问题。否则,它工作得很好。 首先,mySprite.location 应该是 mySprite.position。也许 Three.JS 的早期版本使用了“位置”?

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

关于javascript - 如何在 Verold 脚本中获取 Three.js sprite,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26268674/

相关文章:

javascript - Three.js 场景渲染由鼠标滚动控制?

javascript - toDataURL 导致 Chrome 崩溃

animation - 如何生成多个关键帧对象动画并将其导入 Verold

javascript - 使用 .addClass 后 jQuery 专注于 div 中的第一个表单字段

javascript - 是否可以在 reactjs 中使用自定义图标?

javascript - 放置div1和div2 onclick事件的内容

javascript - 如果使用 await,setTimeout 的同步使用会停止代码吗?

three.js - Three.js 中的 self 反射(reflection)