/// <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
        }