扩展 Unity的 TextureImporterEditor

本文介绍了在Unity中遇到的扩展TextureImporterEditor的问题,通过反射系统实现自定义编辑器,以达到理想的显示效果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

孙广东  2016.8.31


            这个Unity在定制的时候就遇到问题, 最好(不是必须的, 可以自己实现啊)反射系统的,


下面有些代码是之前  的文章中介绍过的。  比如 scene 场景文件的 Inspector 面板显示。   文件夹的 Inspector面板显示等!!!

    正常的逻辑做法;
    [CustomEditor(typeof(TextureImporter))]
    public class CustomTextureAssetInspector : Editor
    {
        public override void OnInspectorGUI()
        {
            DrawDefaultInspector();      // 首先我希望显示默认的 系统的内容(但是不是我想要的!)
            string path = AssetDatabase.GetAssetPath(target);
            // 1
            GUI.enabled = true;
            if (path.EndsWith(".png") || path.EndsWith(".jpg"))
            {
                if (GUILayout.Button("Setup2UI"))
                {

                }
                if (GUILayout.Button("Setup2SpineTexture"))
                {

                }
            }
            Debug.Log("=============显示 TextureAssetInspector ======");
        }
    }

结果如下图所示,  这种肯定不是我想要的。 


http://blog.youkuaiyun.com/u010019717



所以只能使用反射解决:

using UnityEngine;
using System.Collections.Generic;
using System.IO;
using UnityEditor;
using System.Reflection;
using System;

/// <summary>
/// 描述:注: 音频、贴图、材质、预制体、模型、脚本、特殊不识别的资源等都不是 DefaultAsset
/// author: 孙广东
/// </summary>
[CustomEditor(typeof(UnityEditor.DefaultAsset))]
public class CustomDefaultAssetInspector : Editor
{
    #region ===字段===

    private static string prePath = string.Empty;

    #endregion

    #region ===Unity事件=== 快捷键: Ctrl + Shift + M /Ctrl + Shift + Q  实现

    // 1、如果是场景就显示  场景的所有引用。
    // 2、如果是文件夹,就显示 文件夹下的所有文件和子目录
    public override void OnInspectorGUI()
    {
        base.OnInspectorGUI();
        string path = AssetDatabase.GetAssetPath(target);

        // 1
        GUI.enabled = true;
        FileInfo fil = new FileInfo(path);
        if (fil.Attributes == FileAttributes.Directory)//判断类型是选择的是文件夹还是文件
        {
            GUILayout.Label("文件夹下的所有内容:");
            var filePaths = Directory.GetFiles(path, "*", SearchOption.AllDirectories);
            int i = 1;
            for (int j = 0; j < filePaths.Length; j++)
       
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值