void ScriptEditorWindow::endRefresh(const ScriptObjectBackup& backupData)
	{
		if (isDestroyed())
		{
			// We couldn't restore managed instance because window class cannot be found
			_onManagedInstanceDeleted(false);
		}

		PersistentScriptObjectBase::endRefresh(backupData);
	}
	void ScriptManagedResource::endRefresh(const ScriptObjectBackup& backupData)
	{
		ResourceBackupData resourceBackup = any_cast<ResourceBackupData>(backupData.data);
		mResource->restore(mManagedInstance, resourceBackup);

		// If we could not find resource type after refresh, treat it as if it was destroyed
		if (mManagedInstance == nullptr)
			_onManagedInstanceDeleted();

		ScriptResourceBase::endRefresh(backupData);
	}
	void ScriptEditorWindow::endRefresh(const ScriptObjectBackup& backupData)
	{
		mRefreshInProgress = false;

		if (!isDestroyed())
			mManagedInstance = mEditorWidget->getManagedInstance();
		else
			mManagedInstance = nullptr;

		if (mManagedInstance != nullptr)
		{
			auto iterFind = OpenScriptEditorWindows.find(mName);
			if (iterFind != OpenScriptEditorWindows.end())
				iterFind->second.gcHandle = MonoUtil::newGCHandle(mManagedInstance);
		}
		else
		{
			// We couldn't restore managed instance because window class cannot be found
			_onManagedInstanceDeleted();
		}

		PersistentScriptObjectBase::endRefresh(backupData);
	}