/// <summary> /// Verify required members and start the MLMeshing API. /// </summary> void Start() { if (MeshParent == null) { Debug.LogError("Error: MLMeshingBehavior.MeshParent is not set, disabling script."); enabled = false; return; } if (MeshPrefab == null) { Debug.LogError("Error: MLMeshingBehavior.MeshPrefab is not set, disabling script."); enabled = false; return; } if ((MeshType == MeshingType.PointCloud && PointCloudMeshMaterial == null) || (MeshType == MeshingType.Triangles && TriangleMeshMaterial == null)) { Debug.LogErrorFormat("Error: MLMeshingBehavior failed because material member required for mesh type {0} is null, disbling script.", MeshType.ToString()); enabled = false; return; } #if PLATFORM_LUMIN MLMeshing.MeshSettings initSettings; if (UseDefaultSettings) { initSettings = MLMeshing.MeshSettings.Create(); SetSettings(ref initSettings); } else { initSettings = GetSettings(); } MLResult result = MLMeshing.Start(initSettings); if (!result.IsOk) { Debug.LogErrorFormat("Error: MLMeshingBehavior failed starting MLMeshing, disabling script. Reason: {0}", result); enabled = false; return; } #if UNITY_EDITOR UnityEditor.AssemblyReloadEvents.beforeAssemblyReload += StopAPIBeforeAssemblyReload; #endif #endif }