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 のデータが入力されるメッシュ
次の値が返ります。
メッシュが正常に適用されたかどうか