public void GetResultEOF(ref int streamPriority, GameObject go, MeshCaptureMethod captureMethod, bool forceKeyframe, List<SMesh> storeTo)
        {
            SkinnedMeshRenderer[] renderers = go.GetComponentsInChildren<SkinnedMeshRenderer>(true);
            foreach (SkinnedMeshRenderer renderer in renderers) {
                SMesh surrogate = null;

                switch (captureMethod) {
                    case MeshCaptureMethod.smartMesh:
                        if (forceKeyframe) { // || MeshDataChangeDetector.DetectChange(renderer.GetInstanceID(), SceneHierarchyCache.GetMesh(renderer), renderer.transform)) {//not needed, its forced every one and then anyways
                            surrogate = MeshGrabberHelper.BakeBonesKeyFrame(renderer);
                            streamPriority++;
                        } else {
                            surrogate = MeshGrabberHelper.BakeBonesOnly(renderer);
                        }
                        break;

                    case MeshCaptureMethod.fullMesh:
                        surrogate = MeshGrabberHelper.BakeSkinnedMesh(renderer, vBug.settings.recording.meshDataRecording.maxBlendWeights); //19 - 54ms (4 bones), 13 - 43 (1 bone) //14 ms steady by caching boneWeights, and 6 ms(!!!) by splitting the AddBoneInfluences and removing the static method all together!
                        break;
                }

                if (surrogate != null) {
                    if (surrogate.subMeshes != null)
                        surrogate.subMeshes.materialIDs = MaterialDataGrabber.RegisterMaterials(renderer);

                    storeTo.Add(surrogate);
                }
            }
        }
        public void GetResultEOF(ref int streamPriority, GameObject go, MeshCaptureMethod captureMethod, bool forceKeyframe, List<SMesh> storeTo)
        {
            MeshFilter[] filters = go.GetComponentsInChildren<MeshFilter>(true);
            //Debug.Log("found: " + go.name + ", count: " + filters.Length);

            foreach (MeshFilter filter in filters) {
                MeshRenderer renderer = filter.gameObject.GetComponent<MeshRenderer>();

                if (renderer == null)
                    continue;

                Mesh mesh = null;
                SMesh surrogate = null;
                switch (captureMethod) {
                    case MeshCaptureMethod.smartMesh:
                        mesh = SceneHierarchyCache.GetMesh(filter);
                        //mesh = filter.sharedMesh != null ? filter.sharedMesh : filter.mesh;
                        if (mesh != null) {
                            if (forceKeyframe) {
                                surrogate = MeshGrabberHelper.BakeMesh(filter.transform, mesh, renderer.enabled);
                                streamPriority ++;
                            } else {
                                surrogate = new SMesh(filter.transform, mesh.name, mesh.GetInstanceID(), filter.gameObject.activeInHierarchy && renderer.enabled);
                            }
                        } else {
                            if (vBug.settings.general.debugMode)
                                Debug.LogWarning("Mesh == Null");
                        }
                        break;

                    case MeshCaptureMethod.fullMesh:
                        mesh = filter.sharedMesh != null ? filter.sharedMesh : filter.mesh;
                        if (mesh != null) {
                            surrogate = MeshGrabberHelper.BakeMesh(filter.transform, mesh, renderer.enabled);
                            streamPriority++;
                        } else {
                            if (vBug.settings.general.debugMode)
                                Debug.LogWarning("Mesh == Null");
                        }
                        break;
                }

                if (surrogate != null) {
                    if (surrogate.subMeshes != null)
                        surrogate.subMeshes.materialIDs = MaterialDataGrabber.RegisterMaterials(renderer);

                    storeTo.Add(surrogate);
                } else {
                    if (vBug.settings.general.debugMode)
                        Debug.Log(go.name + "_" + filter.name + " has no SMesh!!! " + captureMethod + ", changed? " + MeshDataChangeDetector.DetectChange(filter.GetInstanceID(), mesh, filter.transform));
                }
            }
        }