本文整理汇总了C#中Octree.BuildOctree方法的典型用法代码示例。如果您正苦于以下问题:C# Octree.BuildOctree方法的具体用法?C# Octree.BuildOctree怎么用?C# Octree.BuildOctree使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Octree
的用法示例。
在下文中一共展示了Octree.BuildOctree方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: MakeShape
protected override Shape MakeShape()
{
var mf = GetComponent<MeshFilter>();
var mesh = mf.mesh;
if (mesh == null) { Debug.Log("No Mesh found!"); return null; }
if (IsTrigger || Convex)
{
Convex = IsTrigger;
return new ConvexHullShape(GetComponent<MeshFilter>().mesh.vertices.Select(vert => vert.ConvertToJVector()).ToList());
}
var positions = new List<JVector>();
var indices = new List<TriangleVertexIndices>();
var vertices = mesh.vertices;
var count = mesh.vertices.Length;
var scale = transform.lossyScale;
for (var i = 0; i < count; i++)
{
var v = vertices[i];
v.x *= scale.x;
v.y *= scale.y;
v.z *= scale.z;
positions.Add(new JVector(v.x, v.y, v.z));
}
count = mesh.triangles.Length;
var triangles = mesh.triangles;
for (var i = 0; i < count; i += 3)
{
indices.Add(new TriangleVertexIndices(triangles[i], triangles[i + 2], triangles[i + 1]));
}
var octree = new Octree(positions, indices);
octree.BuildOctree();
return new TriangleMeshShape(octree);
}