ErrorCode StartInternal() { m_SetupConfig = Resources.Load("SetupConfig") as SetupConfig; if (m_SetupConfig == null) { Debug.LogWarning( "SetupConfig can not be loaded, open Google->Android Performance Tuner to setup the plugin."); return(ErrorCode.NoSettings); } if (!m_SetupConfig.pluginEnabled) { Debug.LogWarning( "Android Performance Tuner plugin is not enabled, open Google->Android Performance Tuner to enable the plugin."); return(ErrorCode.TuningforkNotInitialized); } var annotationStatus = CheckAnnotationMessage(m_SetupConfig); var fidelityStatus = CheckFidelityMessage(m_SetupConfig); if (annotationStatus != ErrorCode.Ok) { return(annotationStatus); } if (fidelityStatus != ErrorCode.Ok) { return(fidelityStatus); } InitializationSettings settings = new InitializationSettings(); if (!m_SetupConfig.useAdvancedFidelityParameters) { settings.trainingFidelityParams = new TFidelity(); MessageUtil.SetQualityLevel(settings.trainingFidelityParams, QualitySettings.GetQualityLevel()); } settings.endpointUriOverride = m_endPoint; if (m_SetupConfig.mode == TunerMode.Experiments) { settings.fidelityParamsCallback = Callbacks.FidelityParamsCallbackImpl; } settings.maxNumMetrics = m_MetricLimits; var errorCode = m_AdditionalLibraryMethods.InitWithSettings(settings); if (errorCode != ErrorCode.Ok) { m_AdditionalLibraryMethods.FreePointers(); return(errorCode); } m_OnStop += () => m_AdditionalLibraryMethods.FreePointers(); CreateSceneObject(); m_SceneObject.StartCoroutine(CallbacksCheck()); if (!SwappyIsEnabled()) { EnableUnityFrameTicks(); } if (!m_SetupConfig.useAdvancedAnnotations) { EnableDefaultAnnotationsMode(); } if (!m_SetupConfig.useAdvancedFidelityParameters) { EnableDefaultFidelityMode(); } AddAutoFlush(); AddAutoLifecycleUpdate(); CheckNetworkReachability(); return(errorCode); }