Bitbybit Docs
    Preparing search index...

    Class BabylonPick

    查找射线或指针下的对象:一次拾取向场景发射一条射线,并报告它命中的第一个可拾取网格、命中位置、距离以及命中的面。pickWithPickingRay 使用指针的当前位置;其他方法读取拾取结果的各部分。

    Index

    Constructors

    get from pick info

    • 读取击中点沿射线的距离,以场景单位表示;仅当 hit 为 true 时有意义。

      Parameters

      Returns number

      到命中点的距离

    • 读取拾取击中的网格;仅当 hit 为 true 时有意义。

      Parameters

      Returns AbstractMesh

      被命中的网格

    • 读取拾取击中网格的场景中的点;仅当 hit 为 true 时有意义。

      Parameters

      Returns Point3

      命中点

    • 判断拾取是否击中了任何东西;在读取网格、点或距离之前先检查它。

      Parameters

      Returns boolean

      当命中了某个对象时为 true

    • 读取被击中的子网格的索引,用于被分成多个材质部分的网格。

      Parameters

      Returns number

      子网格索引

    • 读取被击中的三角形在其子网格中的索引。

      Parameters

      Returns number

      面索引

    • 读取击中点在其三角形内的第一个重心坐标,即三角形第二个顶点的权重,用于计算纹理坐标。

      Parameters

      Returns number

      重心坐标 U

    • 读取击中点在其三角形内的第二个重心坐标,即三角形第三个顶点的权重,用于计算纹理坐标。

      Parameters

      Returns number

      重心坐标 V

    • 读取拾取击中的精灵,当拾取的是精灵而不是网格时。

      Parameters

      Returns Sprite

      被命中的精灵

    pick

    • 向场景发射一条射线,并报告它击中的第一个可拾取网格以及击中点和距离;用此处的其他方法读取各部分。

      Parameters

      Returns PickingInfo

      拾取结果

      const ray = bitbybit.babylon.ray.createRay({ origin: [0, 10, 0], direction: [0, -1, 0], length: 100 });
      const pick = bitbybit.babylon.pick.pickWithRay({ ray });
      const hit = bitbybit.babylon.pick.hit({ pickInfo: pick });
    • 从活动相机穿过指针当前位置发射一条射线,并报告它击中的第一个可拾取网格,就像点击选择一样。

      Returns PickingInfo

      拾取结果

      bitbybit.babylon.scene.onPointerDown({ statement_update: () => {
      const pick = bitbybit.babylon.pick.pickWithPickingRay();
      if (bitbybit.babylon.pick.hit({ pickInfo: pick })) {
      console.log(bitbybit.babylon.pick.getPickedPoint({ pickInfo: pick }));
      }
      } });