游戏蛮牛学习群(纯技术交流,不闲聊):159852603
游戏蛮牛 手机端
开启辅助访问
 找回密码
 注册帐号

扫一扫,访问微社区

查看: 185|回复: 0

[网友原创插件] Unity 编辑器工具:拖拽获取拖拽物的类型 -zat

[复制链接]  [移动端链接]
排名
62092
昨日变化

2

主题

2

帖子

10

积分

Rank: 1

UID
290557
好友
0
蛮牛币
60
威望
0
注册时间
2018-7-20
在线时间
4 小时
最后登录
2018-8-16
发表于 2018-8-7 12:40:39 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?注册帐号

x
为什么会用到这个功能?
有的时候你可能在尝试开发Unity编辑器的一些插件,小工具什么的,而unity用起来最为舒适的功能之一就是 拖拽
能拖拽的东西有不少,游戏资源,场景物体,场景物体上的插件,甚至资源视图里的文件夹,或者可能还有别的一些东西,
你能拖拽的都是Unity editor支持的一些可以拖拽的东西,也许你想知道你拖拽的东西到底是个什么类型?毕竟游戏资源里的文件夹在发布以后不会存在,
这个 可拖拽!=游戏内容,或者随着unity版本的增加,一些新的东西加入其中,例如 5.6有的videoplayer,有时候你想取得你拖拽的obj的类型,而不是靠直觉?


注意!因为是编辑器工具所以请扔进Editor文件夹里。


0.png
1.png
2.png
3.png
4.png

文字也是可以复制下来用的。


以下是脚本


using UnityEngine;
using UnityEditor;

public class 拖拽GetType : EditorWindow
{
    [MenuItem("Tools/拖拽GetType")]
    public static void ShowWindow()
    {
        GetWindow<拖拽GetType>();
    }

    private void OnGUI()
    {
        EditorGUILayout.Space();
        EditorGUILayout.SelectableLabel(obj.GetType().ToString(), "BoldLabel");
        EditorGUIUtility.labelWidth = 40;
        using (var b = new EditorGUI.ChangeCheckScope())
        {
            GUI.SetNextControlName("obj");
            obj = EditorGUILayout.ObjectField("Obj", obj, typeof(Object), true);
            if (b.changed) GUI.FocusControl("obj");
        }
    }

    Object obj;
}


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册帐号

本版积分规则

快速回复 返回顶部 返回列表