public override void LoadAchievements (Achievement.LoadAchievementsCompletion _onCompletion)
		{
			base.LoadAchievements(_onCompletion);

			// Verify user authentication state before proceeding
			if (!VerifyUser())
			{	
				return;
			}

			Plugin.Call(Native.Methods.LOAD_ACHIEVEMENTS);
		}
		public override void LoadAchievements (Achievement.LoadAchievementsCompletion _onCompletion)
		{
			base.LoadAchievements(_onCompletion);
			
			// Verify auth status
			if (!VerifyUser())
				return;
			
			EditorGameCenter.Instance.LoadAchievements();
		}
		public override void LoadAchievements (Achievement.LoadAchievementsCompletion _onCompletion)
		{
			base.LoadAchievements(_onCompletion);

			// Verify auth status
			if (!VerifyUser())
				return;

			// Native method call
			loadAchievements();
		}
		protected void LoadAchievementsFinished (Achievement[] _achievements, string _error)
		{
			if (LoadAchievementsFinishedEvent != null)
				LoadAchievementsFinishedEvent(_achievements, _error);
		}
		public void ReportProgress (string _achievementID, int _pointsScored, Achievement.ReportProgressCompletion _onCompletion)
		{
			ReportProgressWithID(_achievementID, _pointsScored, _onCompletion);
		}
		private void ReportProgress (string _achievementGID, string _achievementID, int _pointsScored, Achievement.ReportProgressCompletion _onCompletion)
		{
			Achievement	_newAchievement 	= CreateAchievement(_achievementGID, _achievementID);

			if (_newAchievement == null)
			{
				DebugPRO.Console.LogError(Constants.kDebugTag, "[GameServices] Failed to report progress.");
				
				if (_onCompletion != null)
					_onCompletion(false, "The requested operation could not be completed because Game Service failed to create Achievement object.");
				
				return;
			}

			// Set the points scored
			_newAchievement.PointsScored	= _pointsScored;

			// Report
			_newAchievement.ReportProgress(_onCompletion);
		}
		/// <summary>
		/// Reports the player’s progress for given <see cref="VoxelBusters.NativePlugins.Achievement"/> identifier.
		/// </summary>
		/// <param name="_achievementGID">A string used to uniquely identify <see cref="VoxelBusters.NativePlugins.Achievement"/> across all supported platforms.</param>
		/// <param name="_pointsScored">Value indicates how far the player has progressed.</param>
		/// <param name="_onCompletion">Callback to be called when operation is completed.</param>
		public void ReportProgressWithGlobalID (string _achievementGID, int _pointsScored, Achievement.ReportProgressCompletion _onCompletion)
		{
			string	_achievementID	= GameServicesIDHandler.GetAchievementID(_achievementGID);

			// Invoke handler
			ReportProgress(_achievementGID, _achievementID, _pointsScored, _onCompletion);
		}
		/// <summary>
		/// Loads previously submitted achievement progress for the local player.
		/// </summary>
		/// <param name="_onCompletion">Callback to be called when the request is completed.</param>
		public virtual void LoadAchievements (Achievement.LoadAchievementsCompletion _onCompletion)
		{
			// Cache callback
			LoadAchievementsFinishedEvent = _onCompletion;

			// Verify auth status
			if (!VerifyUser())
			{
				LoadAchievementsFinished(null, Constants.kGameServicesUserAuthMissingError);
				return;
			}
		}