2

以下のようにサブクラス化しようとしていTHREE.Meshます( THREE.MeshはTHREE.Object3Dから継承されます)。

Planet = function(geometry, material) {
    THREE.Mesh.call(this);

    this.geometry = geometry;
    this.material = material;
};

Planet.prototype = Object.create(THREE.Mesh.prototype);

を渡すと問題なく動作するようにSphereGeometry見えboundRadiusますTHREE.Mesh. ただし、シーンは正しく描画されます。

ただし、 を渡すとCubeGeometry、レンダリング ループが非常にうまくいきません。

Uncaught TypeError: Cannot read property 'radius' of null three.min.js:105
THREE.Frustum.intersectsObject three.min.js:105
render three.min.js:414
starsgl.Application.render Application.js:60
starsgl.Application.animate Application.js:55
starsgl.Application Application.js:50
(anonymous function)

Three.jsでサブクラス化THREE.Object3Dする方法を真似しましたTHREE.Mesh。私は何かが欠けている必要があります。

4

1 に答える 1

2

ジオメトリが設定されていないため、radius は呼び出されません。

Planet = function(geometry, material) {
  THREE.Mesh.call(this,geometry,material);
};

Planet.prototype = Object.create(THREE.Mesh.prototype);
于 2013-01-25T14:39:38.810 に答える