Пример #1
0
        private void ConvertCoposite(CompositeCollider2D collider, List <GameObject> createdObjects)
        {
            if (collider.edgeRadius < Mathf.Epsilon)
            {
                for (int i = 0; i < collider.pathCount; i++)
                {
                    var path = new Vector2[collider.GetPathPointCount(i)];
                    collider.GetPath(i, path);

                    Mesh mesh         = Collider2DTo3DUtils.GetMeshFromPath(path, true);
                    var  obj          = GetObjectCopy(collider.gameObject, createdObjects);
                    var  meshCollider = obj.AddComponent <MeshCollider>();
                    meshCollider.sharedMesh = mesh;
                }
            }
            else
            {
                for (int i = 0; i < collider.pathCount; i++)
                {
                    var path = new Vector2[collider.GetPathPointCount(i)];
                    collider.GetPath(i, path);
                    ConvertPath(collider.gameObject, collider.edgeRadius, createdObjects, path, true);
                }
            }
        }
Пример #2
0
        private void ConvertEdgeCollider(EdgeCollider2D collider, List <GameObject> createdObjects)
        {
            if (collider.edgeRadius < Mathf.Epsilon)
            {
                var path = collider.points;

                Mesh mesh         = Collider2DTo3DUtils.GetMeshFromPath(path, false);
                var  obj          = GetObjectCopy(collider.gameObject, createdObjects);
                var  meshCollider = obj.AddComponent <MeshCollider>();
                meshCollider.sharedMesh = mesh;
            }
            else
            {
                var path = collider.points;
                ConvertPath(collider.gameObject, collider.edgeRadius, createdObjects, path, false);
            }
        }
Пример #3
0
        private void ConvertPolygons(List <GameObject> createdObjects)
        {
            var polygons2D = FindObjectsOfType <PolygonCollider2D>();

            foreach (var collider in polygons2D)
            {
                if (Isexcluded(collider.gameObject))
                {
                    continue;
                }
                for (int i = 0; i < collider.pathCount; i++)
                {
                    {
                        var  path         = collider.GetPath(i);
                        Mesh mesh         = Collider2DTo3DUtils.GetMeshFromPath(path, true);
                        var  meshCollider = GetObjectCopy(collider.gameObject, createdObjects).AddComponent <MeshCollider>();
                        meshCollider.sharedMesh = mesh;
                    }
                }
            }
        }