首页 >Unity3D频道 >【Unity3D拓展编辑器】 > Unity3D研究院编辑器之自定义默认资源的Inspector面板(十)
2015
10-23

Unity3D研究院编辑器之自定义默认资源的Inspector面板(十)

比如编辑模式下对场景或者特定文件夹有一些操作可以在这个面板里来完成。。

Snip20151023_2
代码如下。

using UnityEngine;
using System.Collections;
using UnityEditor;


[CustomEditor(typeof(UnityEditor.DefaultAsset))]

public class CustomInspector : Editor {

	public override void OnInspectorGUI ()
	{
		string path = AssetDatabase.GetAssetPath(target);

		GUI.enabled = true;
		if(path.EndsWith(".unity"))
		{
			GUILayout.Button("我是场景");

		}else if(path.EndsWith("")){;

			GUILayout.Button("我是文件夹");

		}
	}
}

 

如果你是unity5.3的话, 想在场景面板上面绘制东西需要使用 UnityEditor.SceneAsset

[CustomEditor(typeof(UnityEditor.SceneAsset))]

 

最后编辑:
作者:雨松MOMO
专注移动互联网,Unity3D游戏开发
捐 赠写博客不易,如果您想请我喝一杯星巴克的话?就进来看吧!

Unity3D研究院编辑器之自定义默认资源的Inspector面板(十)》有 13 条评论

  1. Birth说:

    2018.3 SceneAsset 可以取到 .unity DefaultAsset 可以取到文件夹 2选1了

  2. 秦海刚说:

    请问可以改变Transform 的外观么?

  3. 大神,我的是5.3的版本,为什么我用[CustomEditor(typeof(UnityEditor.DefaultAsset))]时候,文件夹可以显示,场景不显示而我用[CustomEditor(typeof(UnityEditor.SceneAsset))]时候,场景显示,文件夹就不显示啊?

  4. 可是好像对原来就有控件的Inspector面板无效额

  5. Aorition说:

    @雨松MOMO , 你好.

    在学习你的代码的过程中, [CustomEditor(typeof(UnityEditor.DefaultAsset))] 这句 编译器报错 说找不到 DefaultAsset , 为什么呢?

  6. 孙雨说:

    不能通过文件扩展名来判定是不是目录,会跟无后缀名的文件混淆。

    assetpath = AssetDatabase.GetAssetPath(target);
    if (Directory.Exists(assetpath))
    {
    ...
    }

    这个比较靠谱。[呵呵]

  7. c6u2说:

    学习了,真心不错哦!

留下一个回复

你的email不会被公开。 必填项已用 * 标注。