1

我对 BabylonJS 很陌生,我创建了一个这样的自定义网格(我不知道这是否正确):

function DragSphere() {
    this.sphere = BABYLON.Mesh.CreateSphere("sphere", 15, 2, scene);
    this.sphere.material = new BABYLON.StandardMaterial("sphereMat", scene);
    ...
    return (this.sphere);
}

DragSphere.prototype.setRGBColor = function(r, g, b) {
    this.sphere.material.diffuseColor = new BABYLON.Color3(r/255, g/255, b/255);
}

所以我想用SetRGBColormy 的方法DragSphere来更新它的颜色,但是浏览器似乎不同意我的看法:

 Uncaught TypeError: sphere.setRGBColor is not a function
4

1 回答 1

1

从构造函数中删除return (this.sphere);语句。

如果您使用的是 TypeScript,则只能使用new运算符调用 void 函数。如上所述,在其签名中使用返回类型调用该函数将导致该setRGBColor函数在转译的 JavaScript 中未定义。

您可以在Babylon JS 操场上尝试一下。

于 2016-07-25T23:35:24.957 回答