示例#1
0
        public UpdatableSlicer(GameObject srcObject)
        {
            var renderers = srcObject.GetComponentsInChildren(typeof(MeshFilter), true);

            _slicers = new List <Slicer>();

            for (var i = 0; i < renderers.Length; i++)
            {
                var meshRenderer = (MeshFilter)renderers[i];
                if (meshRenderer.mesh != null && meshRenderer.mesh.triangles != null &&
                    meshRenderer.mesh.triangles.Length != 0)
                {
                    var slicer = new Slicer(meshRenderer.sharedMesh, renderers[i].gameObject);
                    _slicers.Add(slicer);
                }
            }
        }
示例#2
0
        public OnetimeSlicer(GameObject srcObject)
        {
            _srcCloneLower = Object.Instantiate(srcObject);
            _srcCloneUpper = Object.Instantiate(srcObject);
            var renderersLower = _srcCloneLower.GetComponentsInChildren(typeof(MeshFilter), true);
            var renderersUpper = _srcCloneUpper.GetComponentsInChildren(typeof(MeshFilter), true);
            var renderersSrc   = srcObject.GetComponentsInChildren(typeof(MeshFilter), true);

            _slicers = new List <Slicer>();
            for (var i = 0; i < renderersSrc.Length; i++)
            {
                var meshRenderer = (MeshFilter)renderersSrc[i];
                if (meshRenderer.mesh != null && meshRenderer.mesh.triangles != null &&
                    meshRenderer.mesh.triangles.Length != 0)
                {
                    var slicer = new Slicer(meshRenderer.sharedMesh, renderersSrc[i].gameObject, renderersLower[i].gameObject,
                                            renderersUpper[i].gameObject);
                    _slicers.Add(slicer);
                }
            }

            srcObject.SetActive(false);
        }