Unity 5로 Public이 되는 Default Asset

6469 단어 unity5Unity
유닛 4 시대에 편집 확장을 한 사람은 타입UnityEngine.DefaultAsset을 본 적이 있을 것이다.Unity Engine.Object의 사용자 정의 편집을 만들 때입니다.

하지만UnityEngine.DefaultAsset 인터넷이라 만질 수 없습니다.

Defaultasset에서 편집 API로 이동


Default Asset의 학급은 UnityEditor.DefaultAsset로public를 접촉한다.

폴더와 장면의 사용자 정의 편집기를 만들어 보십시오



DefaultAssetInspector.cs
using UnityEngine;
using UnityEditor;
using System.IO;

[CustomEditor(typeof(DefaultAsset))]
public class DefaultAssetInspector : Editor
{
    Editor editor;

    public override void OnInspectorGUI ()
    {
        // DefaultAsset の GUI はデフォルトで無効になっているので有効にする
        GUI.enabled = true;

        var assetPath = AssetDatabase.GetAssetPath (target);

        if (AssetDatabase.IsValidFolder (assetPath)) {
            Editor.CreateCachedEditor (target, typeof(FolderInspector), ref editor);
        } else if (IsSceneAsset (assetPath)) {
            Editor.CreateCachedEditor (target, typeof(SceneInspector), ref editor);
        } else {
            // いらないかも
            base.OnInspectorGUI ();
        }

        if (editor) {
            editor.OnInspectorGUI ();
        }
    }

    private bool IsSceneAsset (string assetPath)
    {
        return Path.GetExtension (assetPath) == ".unity";
    }
}
FolderInspector.cs
using UnityEngine;
using UnityEditor;

public class FolderInspector : Editor
{
    public override void OnInspectorGUI ()
    {
        EditorGUILayout.LabelField ("フォルダーだよ!");
    }
}
SceneInspector.cs
using UnityEngine;
using UnityEditor;

public class SceneInspector : Editor
{
    public override void OnInspectorGUI ()
    {
        EditorGUILayout.LabelField ("シーンだよ!");
    }
}
코드에 사용된Editor.CreateCachedEditor 소박하고 편리합니다!

좋은 웹페이지 즐겨찾기