a3js API Documentation - v1.3.1
    Preparing search index...

    Class Scene

    3D 仮想空間を管理するクラスです。

    ObjectA3 を追加・削除してシーンを構築します。 毎フレームの更新処理(位置計算・物理シミュレーション・衝突検知)もこのクラスが行います。

    const scene = new Scene();

    const box = new Box();
    scene.add(box);

    // 毎フレーム呼び出す
    function animate(dt: number) {
    scene.update(dt);
    }
    Index

    Constructors

    Properties

    collisionListener?: (cs: Collision[]) => void

    衝突が検知されたときに呼び出されるリスナー。setCollisionListener() で登録します。

    objects: ObjectA3[]

    このシーンに追加されているすべての ObjectA3 の配列です。

    physicsDt: number = ...

    物理シミュレーションの時間刻み(秒)。初期値は 1/60 秒です。

    physicsWorld: PhysicsWorld | null = null

    物理ワールドのインスタンス。initPhysics() が呼ばれていない場合は null です。

    rapierLines?: LineSegments<
        BufferGeometry<NormalBufferAttributes, BufferGeometryEventMap>,
        Material<MaterialEventMap> | Material<MaterialEventMap>[],
        Object3DEventMap,
    >

    物理デバッグモード時に表示するコライダーの輪郭線。setPhysicsDebugMode(true) で有効になります。

    scene: Scene

    内部で使用している Three.js の THREE.Scene。直接操作するよりも Scene のメソッドを使うことを推奨します。

    Methods

    • ObjectA3 をこのシーンに追加します。 追加されたオブジェクトは毎フレームの update() で更新されるようになります。 物理エンジンが有効な場合は物理ワールドへの登録も自動的に行われます。

      Parameters

      Returns void

    • ObjectA3 をこのシーンから取り除きます。 物理エンジンが有効な場合は物理ワールドからの登録解除も自動的に行われます。

      Parameters

      Returns void

    • このシーンに追加されているすべての ObjectA3 を取り除きます。

      Returns void

    • 物理エンジンが衝突を検知したときに呼び出されるリスナーを登録します。 個別のオブジェクトの衝突を処理したい場合は ObjectA3.handleCollision() のオーバーライドを使ってください。

      Parameters

      • func: (cs: Collision[]) => void

        衝突情報の配列 Collision[] を受け取る関数

      Returns void

    • 物理エンジンのデバッグ表示を切り替えます。 true にすると、コライダー(衝突判定の形状)の輪郭線が 3D 空間に表示されます。

      Parameters

      • debug: boolean

        true でデバッグ表示を有効化、false で無効化

      Returns void