Ваш запрос requestAnimationFrame должен запускать ваш метод render (), а не метод update (). Затем метод update () вызывается внутри метода render ().
Хотя, я вижу, this.start()
вызвано, но нет ссылки на этот метод, так что не знаете, что это делает?
Я бы добавил animate()
метод для обработки update () и render (), который вызывается по запросу requestAnimationFrame ().
например:
animate() {
requestAnimationFrame( this.animate );
this.update();
this.render();
}
Визуализация () станет:
render () {
TWEEN.update();
this.renderer.render( this.scene, this.camera );
}
Затем внутри init (), где у вас есть requestAnimationFrame(this.update);
- заменить на this.animate();
Возможно, вам потребуется обновить ссылку на eventListener:
window.addEventListener("mousedown", e => this.onclick(e), true);
Это должно исправить проблемы с областью видимости. Tween.js выглядит нормально, но без демонстрации я не могу сказать наверняка, и ссылки на this.start (), которого нет в фрагменте кода, поэтому не могут объяснить это.
Нет также причины, по которой метод Tween не мог обновить значения объекта this.camera.position
вместо Vector3 'cameraPosition', в зависимости от того, что еще вы хотите запустить в своем проекте.