Метод Javascript не работает в BabylonJS с пользовательской сеткой

Я очень новичок в 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);
}

Итак, я хочу использовать метод SetRGBColor моего DragSphere для обновления его цвета, но браузер, похоже, не согласен со мной:

 Uncaught TypeError: sphere.setRGBColor is not a function

person boehm_s    schedule 12.06.2016    source источник


Ответы (1)


Удалите оператор return (this.sphere); из конструктора.

Если вы используете TypeScript, с оператором new можно вызывать только функцию void. Вызов функции с возвращаемым типом в сигнатуре, как указано выше, приведет к тому, что функция setRGBColor не будет определена в транспилированном JavaScript.

Вы можете попробовать это на JS-площадке Babylon.

person Mark    schedule 25.07.2016
comment
Хорошо - то же самое относится и к JavaScript (хотя я не думаю, что вы всегда получаете сообщение об ошибке при возврате в конструкторе). Вы пытались удалить оператор return? @boehm_s - person Mark; 26.07.2016
comment
Я попробую этот WE, потому что мой проект на другом компьютере, спасибо;) - person boehm_s; 26.07.2016
comment
Отлично - дайте мне знать, как это происходит! - person Mark; 26.07.2016
comment
Где детская площадка? - person Richard; 25.07.2020