うにてぃブログ

主にUnityとC#に関する記事を書いていきます

【Unity】強制的に Dirty フラグをつける メニューの追加

Animator や Scene など、UnityEditor 上で編集したにも関わらず、git 上で差分が出てこないことがある
これは Dirty フラグが立っておらず差分が反映されてないから生じている

そのため、右クリックメニューから強制的にフラグを立てられるメニューを作成

[MenuItem("Assets/Force Dirty")]
private static void ForceDirty()
{
    var guids = Selection.assetGUIDs;

    if (guids.Length <= 0)
        return;

    foreach (var guid in guids)
    {
        var path = AssetDatabase.GUIDToAssetPath(guid);
        var obj = AssetDatabase.LoadAssetAtPath<UnityEngine.Object>(path);
        EditorUtility.SetDirty(obj);
    }

    AssetDatabase.SaveAssets();
}