当前位置: 首页>>代码示例>>C#>>正文


C# Bounds.Encapsulate方法代码示例

本文整理汇总了C#中Bounds.Encapsulate方法的典型用法代码示例。如果您正苦于以下问题:C# Bounds.Encapsulate方法的具体用法?C# Bounds.Encapsulate怎么用?C# Bounds.Encapsulate使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在Bounds的用法示例。


在下文中一共展示了Bounds.Encapsulate方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。

示例1: GetPartMeshBoundsInPartSpace

            public static Bounds[] GetPartMeshBoundsInPartSpace(this Part part, int excessiveVerts = 2500)
            {
                Transform[] transforms = part.FindModelComponents<Transform>();
                Bounds[] bounds = new Bounds[transforms.Length];
                Matrix4x4 partMatrix = part.partTransform.worldToLocalMatrix;
                for(int i = 0; i < transforms.Length; i++)
                {
                    Bounds newBounds = new Bounds();
                    Transform t = transforms[i];

                    MeshFilter mf = t.GetComponent<MeshFilter>();
                    if (mf == null)
                        continue;
                    Mesh m = mf.sharedMesh;

                    if (m == null)
                        continue;
                    Matrix4x4 matrix = partMatrix * t.localToWorldMatrix;

                    if (m.vertices.Length < excessiveVerts)
                        for (int j = 0; j < m.vertices.Length; j++)
                        {
                            newBounds.Encapsulate(matrix.MultiplyPoint(m.vertices[j]));
                        }
                    else
                    {
                        newBounds.SetMinMax(matrix.MultiplyPoint(m.bounds.min), matrix.MultiplyPoint(m.bounds.max));
                    }

                    bounds[i] = newBounds;
                }
                return bounds;
            }
开发者ID:boniboni,项目名称:Ferram-Aerospace-Research,代码行数:33,代码来源:FARPartExtensions.cs


注:本文中的Bounds.Encapsulate方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。