static void ProcessPrimitive(List <ReducerTask> reducerTasks, MeshCache meshCache, SAMeshCollider meshCollider) { if (reducerTasks == null || meshCache == null || meshCollider == null) { Debug.LogError(""); return; } SplitMesh splitMesh = meshCollider.splitMesh; if (splitMesh == null) { Debug.LogError(""); return; } SAMeshColliderEditorCommon.MarkManualProcessingToParent(meshCollider); if (meshCollider.splitPolygonNormalEnabled) { SAMeshColliderEditorCommon.MakeSplitMeshTriangles(meshCache, splitMesh); SplitPolygon(reducerTasks, meshCache, meshCollider, meshCollider); } else { SAMeshColliderEditorCommon.MakeSplitMeshTriangles(meshCache, splitMesh); SAMeshColliderEditorCommon.RegistReducerTask(reducerTasks, meshCollider); } }
static void Cleanup(SAMeshCollider meshCollider) { if (meshCollider == null) { Debug.LogError(""); return; } SAMeshColliderEditorCommon.CleanupChildSAMeshColliders( meshCollider.gameObject, meshCollider.cleanupModified); SAMeshColliderEditorCommon.CleanupSelfSAMeshCollider(meshCollider); SAMeshColliderEditorCommon.MarkManualProcessingToParent(meshCollider); }
static void ProcessPolygon(List <ReducerTask> reducerTasks, SAMeshCollider meshCollider) { if (reducerTasks == null || meshCollider == null) { Debug.LogError(""); return; } SplitMesh splitMesh = meshCollider.splitMesh; if (splitMesh == null) { Debug.LogError(""); return; } SAMeshColliderEditorCommon.MarkManualProcessingToParent(meshCollider); SAMeshColliderEditorCommon.SalvageMeshByPolygon(splitMesh); SAMeshColliderEditorCommon.RegistReducerTask(reducerTasks, meshCollider); }