本文へスキップ

class_MeshBuilderAsync


title: class MeshBuilderAsync toc_max_heading_level: 4


class MeshBuilderAsync

(Niantic.Lightship.Maps.Builders.Performance.MeshBuilderAsync)

概要

class MeshBuilderAsync:
Niantic.Lightship.Maps.Builders.MeshBuilderBase,
Niantic.Lightship.Maps.Builders.Performance.IMeshBuilderAsync {
public:
// メソッド

virtual bool PreBuild(
IReadOnlyList<MeshTile> tiles,
out IReadOnlyList<MeshTile> tilesToBuild
);

virtual abstract void Build(IReadOnlyList<MeshTile> tiles) = 0;

protected:
// メソッド

IReadOnlyList<MeshTile> GetValidTilesAndClearInvalidTiles(
IReadOnlyList<MeshTile> tiles,
int minLOD,
int maxLOD
);

IReadOnlyList<IReadOnlyList<T>> GetFeaturesByTile< T >(IReadOnlyList<MeshTile> mapTiles);
IReadOnlyList<T> GetFeaturesForTile< T >(MeshTile tile);

bool ApplyMeshInternal(
Mesh.MeshDataArray meshDataToApply,
CancellationToken token,
out Mesh outputMesh
);
};

// 直接の派生クラス

class AreaFeatureBuilderAsync;
class GroundBuilderAsync;
class LinearFeatureBuilderAsync;
class StructureFeatureBuilderAsync;

継承メンバー

public:
// フィールド

int MinLOD => _minLOD;
int MaxLOD => _maxLOD;

// プロパティ

Guid Id;
int MinLOD;
int MaxLOD;
Guid Id;

// メソッド

virtual void Initialize(ILightshipMapView lightshipMapView);
MeshFilter CreateMeshComponents(IMapTileObject mapTileObject);
void Release(MeshFilter meshFilter);
MeshFilter CreateMeshComponents(IMapTileObject mapTileObject);
virtual void Release(MeshFilter meshFilter);

bool PreBuild(
IReadOnlyList<MeshTile> tiles,
out IReadOnlyList<MeshTile> tilesToBuild
);

void Build(IReadOnlyList<MeshTile> tiles);

```cs
protected:
// フィールド

string BuilderName => _builderName.NullIfEmptyOrWhitespace() ?? name;
LayerKind Layer => _mapLayer;
List<FeatureKind> Features => _features;
Material[] _materials;

// プロパティ

Vector3 ZOffset;

// メソッド

static void SetMeshForFilter(Mesh mesh, MeshFilter meshFilter);

詳細なドキュメント

メソッド

PreBuild

virtual bool PreBuild(
IReadOnlyList<MeshTile> tiles,
out IReadOnlyList<MeshTile> tilesToBuild
)

構築前のタイルを処理する

Build

virtual abstract void Build(IReadOnlyList<MeshTile> tiles) = 0

1つ以上のマップタイルがシーンに追加されると呼び出されます。 このメソッドでは、特定のマップタイルの特徴に対してメッシュを生成します。

GetValidTilesAndClearInvalidTiles

IReadOnlyList<MeshTile> GetValidTilesAndClearInvalidTiles(
IReadOnlyList<MeshTile> tiles,
int minLOD,
int maxLOD
)

一定の IFeatureBuilder に対して現在有効でないMeshTilesをフィルタリングして消去します。

    パラメーター

    tiles - メッシュタイルのIReadOnlyList<T>

    minLOD - IMapTilesが有効になるためのLODの最小値

    maxLOD - IMapTilesが有効になるためのLODの最大値

    次の値が返ります。

    指定された IFeatureBuilder で現在有効なメッシュタイルのIReadOnlyList<T>のTask<T>です。

GetFeaturesByTile< T >

IReadOnlyList<IReadOnlyList<T>> GetFeaturesByTile< T >(IReadOnlyList<MeshTile> mapTiles)

MeshTileごとのIMapTileFeaturesのリストを取得します。

    パラメーター

    mapTiles - この MeshBuilderAsync でビルドするためにキューに入れられたすべてのMeshTilesの IReadOnlyList<T>。

    T - IMapTileFeatureから派生した特徴タイプで、どの特徴を返すかを指定します。

    次の値が返ります。

    マップタイルごとの特徴のリスト。

GetFeaturesForTile< T >

IReadOnlyList<T> GetFeaturesForTile< T >(MeshTile tile)

特定のMeshTileのIMapTileFeaturesのリストを取得します。

.

    パラメーター

    tile - 取得する T 型の特徴を持つMeshTile

    T - IMapTileFeatureから派生した特徴タイプで、どの特徴を返すかを指定します。

    次の値が返ります。

    入力 IReadOnlyList<T> の指定されたインデックスのメッシュタイルの特徴のリスト。

ApplyMeshInternal

bool ApplyMeshInternal(
Mesh.MeshDataArray meshDataToApply,
CancellationToken token,
out Mesh outputMesh
)

meshDataToApply から入力されたメッシュを出力します。

    パラメーター

    meshDataToApply - Mesh.MeshDataArrayの最初の要素には、 outputMesh に入力するために必要なデータが含まれます。

    token - メッシュの割り当てをキャンセルします。

    outputMesh - meshDataToApply のデータが入力されるメッシュ

    次の値が返ります。

    メッシュが正常に適用されたかどうか