メッシュを1つにして計算し、MeshCollider
を追加してパス探索を計算しています。生成されるメッシュは非常に大きく、2つ以上の「メッシュパーツ」にメッシュを分割します。私はそうのようなMeshColliderを設定します。多数の頂点を持つメッシュのための単一のMeshColliderを作成する
testRoom = GameObject.Find("testroom");
MeshFilter[] _filters = testRoom.GetComponentsInChildren<MeshFilter>();
foreach (MeshFilter _filter in _filters)
{
_verts.AddRange(_filter.mesh.vertices);
_triangles.AddRange(_filter.mesh.triangles);
testRoom.AddComponent<MeshCollider>();
testRoom.GetComponent<MeshCollider>().sharedMesh = _filter.mesh;
}
これは明らかに衝突が上書きされますので、いくつかのmeshpartsといけない仕事します。メッシュが大きいので、メッシュを一緒にマージしてコライダーを設定することはできません。私はGenerity Collidersボックスを使用してもうまく動作しますが、実行時にメッシュを生成するので、プログラム可能なソリューションが必要です。
多くの頂点を持つためにいくつかの部分に分割された大きなメッシュのための単一のコライダーを作成する方法を知っている人はいますか?
これはメッシュの写真です(要求通り)。それは不思議そうに見えるかもしれませんが、それはオフィスビルの一部です。タンゴのタブレットを使って自分でメッシュを作りました。メッシュがどのように答えに影響するか考えなかったので、私はタンゴタグを含んでいませんでした。
を作る http://docs.unity3d.com/ScriptReference/Collider-bounds.html
希望を境界と新しい箱コライダーを作成する必要があります。原則として、ゲームエンジニアリングでは決してメッシュコライダーを使用しません。 (それらには1つか2つの珍しい用途しかありません) – Fattie
これについて詳細に教えてください。私はそれらを使用しています。なぜなら、それは私が1つにしたいと思っているレイトレーシングをする最も簡単な方法だったからです。 – soncis