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); } IMessage defaultQualityParameters = null; if (!m_SetupConfig.useAdvancedFidelityParameters) { defaultQualityParameters = new TFidelity(); MessageUtil.SetQualityLevel(defaultQualityParameters, QualitySettings.GetQualityLevel()); } var errorCode = m_AdditionalLibraryMethods.Init(Callbacks.FidelityParamsCallbackImpl, defaultQualityParameters, m_endPoint); 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(); } AddUploadCallback(); AddAutoFlush(); return(errorCode); }