Skip to content

Instantly share code, notes, and snippets.

@sokuhatiku
Last active June 2, 2019 12:34
Show Gist options
  • Save sokuhatiku/39850076666e00df1f07ff5cd4fdfb90 to your computer and use it in GitHub Desktop.
Save sokuhatiku/39850076666e00df1f07ff5cd4fdfb90 to your computer and use it in GitHub Desktop.
UnityEngine.HideFlags Checker
= TEXTJOIN(" | ", TRUE, IF($F2 = 0, "HideFlags.None", ""), IF(BITAND($F2, 1) = 1, "HideFlags.HideInHierarchy", ""), IF(BITAND($F2, 2) = 2, "HideFlags.HideInInspector", ""), IF(BITAND($F2, 4) = 4, "HideFlags.DontSaveInEditor", ""), IF(BITAND($F2, 8) = 8, "HideFlags.NotEditable", ""), IF(BITAND($F2, 16) = 16, "HideFlags.DontSaveInBuild", ""), IF(BITAND($F2, 32) = 32, "HideFlags.DontUnloadUnusedAsset", ""), IF(BITAND($F2, 52) = 52, "HideFlags.DontSave", ""), IF(BITAND($F2, 61) = 61, "HideFlags.HideAndDontSave", ""))
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEditor;
using System.Linq;
using System.Text;
using System.IO;
public class HideFlagsChecker
{
[MenuItem("Assets/HideFlagsChecker")]
public static void Check()
{
var text = new StringBuilder();
var strings = Selection.assetGUIDs
.SelectMany(CheckMany);
foreach (var s in strings)
{
text.AppendLine(s);
}
Debug.Log(text.ToString());
EditorGUIUtility.systemCopyBuffer = text.ToString();
}
static IEnumerable<string> CheckMany(string guid)
{
var path = AssetDatabase.GUIDToAssetPath(guid);
var assets = AssetDatabase.LoadAllAssetsAtPath(path);
if (assets == null || assets.Length == 0)
assets = new Object[] { AssetDatabase.LoadAssetAtPath<Object>(path) };
foreach (var asset in assets)
{
if (asset == null)
{
yield return string.Concat(
"null",
", ",
FileNameOf(path),
", ",
"null",
", ",
"null",
", ",
"null",
", ",
"null");
continue;
}
yield return string.Concat(
AssetDatabase.IsMainAsset(asset) ? "MAIN" : "SUB",
", ",
FileNameOf(path),
", ",
asset.name,
", ",
asset.GetType(),
", ",
PrefabUtility.GetPrefabType(asset),
", ",
(int)asset.hideFlags
);
}
}
private static string FileNameOf(string path)
{
return Path.GetFileName(path);
}
static string Check(Object asset)
{
if (asset == null)
return "-";
return asset.GetType().Name + ", " + (int)asset.hideFlags + ", " + Path.GetFileName(AssetDatabase.GetAssetPath(asset));
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment