Объявление
public static void ReleaseCachedFileHandles();Описание
Вызов этой функции освободит дескрипторы файлов, кэшированные внутри Unity. Это позволяет безопасно изменять ресурсы или метафайлы, избегая возможных ошибок ввода-вывода при обмене файлами.
using System.IO;
using UnityEditor;
using UnityEngine;
public class AssetDatabaseExamples : MonoBehaviour
{
//Заменить информацию метафайла
[MenuItem("AssetDatabase/Release Cached FileHandles Example")]
public static void ReleaseCachedFileHandlesExample()
{
//Чтение и сохранение метаинформации, которая будет заменять метафайл
var metaContent = File.ReadAllText("NewMetaFile.txt");
//Получение пути к метафайлу Material
var metaFilePath = AssetDatabase.GetTextMetaFilePathFromAssetPath("Assets/Material.mat");
//Release CachedFileHandles, чтобы избежать ошибок ввода-вывода
AssetDatabase.ReleaseCachedFileHandles();
//Заменяем метафайл содержимым NewMetaFile.txt
File.WriteAllText(metaFilePath, metaContent);
AssetDatabase.Refresh();
}
}