• Unity3d 查找所选的是否引用过某资源


    一、使用方式:

    1、选择要被查找的资源,右键->Find Reference

    2、把资源拽入Res,点Find

    3、输出结果见Console

    //代码

    using UnityEngine;
    using System;
    using System.Collections;
    using UnityEditor;
    using System.Collections.Generic;
    
    
    public class FindReference : ScriptableWizard
    {
        public UnityEngine.Object Res;
    
        // Use this for initialization
        void Start()
        {
    
        }
    
    	[MenuItem("Assets/Find Reference")]
        public static void OpenDialog()
        {
    		DisplayWizard<FindReference>("Find Reference Object In Current Select", "Find", "Cancel");
        }
    
        void OnWizardCreate()
        {
            Find();
        }
        void OnWizardOtherButton()
        {
            Close();
        }
    
    
        public void Find()
        {
    		EditorUtility.DisplayProgressBar("Find Reference", "Finding...", 0);
    
    		var instanceId = Res.GetInstanceID();
    
    		var gos = Selection.GetFiltered(typeof(UnityEngine.Object), SelectionMode.DeepAssets);
    
    	    string log = "";
    
    
    	    int i = 0;
    	    try
    	    {
    			foreach (var go in gos)
    			{
    				var assetPath = AssetDatabase.GetAssetPath(go.GetInstanceID());
    				var paths = AssetDatabase.GetDependencies(new[] { assetPath });
    				foreach (var path in paths)
    				{
    					var res = AssetDatabase.LoadAssetAtPath(path, typeof(UnityEngine.Object));
    					if (res.GetInstanceID() == instanceId)
    					{
    						log+= assetPath;
    						log += "
    ";
    					}
    				}
    				EditorUtility.DisplayProgressBar("Find Reference", assetPath, i / gos.Length);
    				i++;
    			}
    	    }
    	    catch (Exception e)
    	    {
    			Debug.Log(e.Message);
    	    }
    	    finally
    	    {
    			EditorUtility.ClearProgressBar();
    	    }
    		
    
    		Debug.Log(log);
        }
    
        
    
    }
    

      

  • 相关阅读:
    Web 日志分析过程
    nginx系列之九:lua服务
    Linux网络编程之IO模型
    从URL输入到页面展现到底发生什么
    CentOS 日常运维十大技能
    以MySQL为例,详解数据库索引原理(1)
    Elasticsearch的特点以及应用场景
    Ubuntu1804编译安装LNMP
    golang 高级
    Centos7 安装 Redis
  • 原文地址:https://www.cnblogs.com/mrblue/p/5405704.html
Copyright © 2020-2023  润新知