topaz-dev’s

ああああああ

Hierarckyの拡張

ヒエラルキーは1つ1つのオブジェクトに対して、変更を加えることができる。

InitializeOnLoadのクラスを作ってコンストラクタに処理を記載する。

    [InitializeOnLoad]
    public static class ObjectDisplay 
    {
        static ObjectDisplay()
        {
            EditorApplication.hierarchyWindowItemOnGUI += RenderObject;
        }

        static void RenderObject(int instanceID, Rect selectArea)
        {
            GameObject sceneGameObject = EditorUtility.InstanceIDToObject(instanceID) as GameObject;
            if (sceneGameObject == null)
                return;
            if (sceneGameObject.TryGetComponent(out IObjectNameEdit obj))
            {
                obj.Render(instanceID,selectArea);
            }

        }
    }
  • Iconについて

UnityCsReference/ProjectWindowUtil.cs at 6ac92f7229c910266c744d6bb10b69f594404b5b · Unity-Technologies/UnityCsReference · GitHub

internal static void CreateFolderWithTemplates(string defaultName, params string[] templates)
        {
            var folderIcon = templates != null && templates.Length > 0
                ? EditorResources.folderIconName
                : EditorResources.emptyFolderIconName;

            var endNameEditAction = ScriptableObject.CreateInstance<DoCreateFolderWithTemplates>();
            endNameEditAction.templates = templates;
            StartNameEditingIfProjectWindowExists(0, endNameEditAction, defaultName, EditorGUIUtility.IconContent(folderIcon).image as Texture2D, null);
        }
// オブジェクトからAssetPathを得る
// Asests/Hoge/Huga.prefab
string path = AssetDatabase.GetAssetPath(_obj);
Debug.LogWarning(path);

// AssetPathからGUIDを得る
// ???????????????  GUID.ToString()文字列にする
GUID guid = AssetDatabase.GUIDFromAssetPath(path);
Debug.LogWarning(guid);
Debug.LogWarning(guid.ToString());

// GUIDからAsset
var assetPath = AssetDatabase.GUIDToAssetPath(guid.ToString());
Debug.LogWarning(assetPath);
EditorApplication.projectWindowItemOnGUI += RenderWindowObject;

でdeligateを追加すると普通の描画の後に呼ばれる

GameObject gameObject = EditorUtility.InstanceIDToObject(instanceID) as GameObject;