å¨ Unity ä¸ç®åæåç°äºè·åä¾èµå
³ç³»ç两个 API æ¥å£ï¼åå«æ¯ï¼
EditorUtility.CollectDependencies
AssetDatabase.GetDependencies
å
¶ä¸ AssetDatabase.GetDependencies è·åå°çç»æå°±æ¯ä¸é¢æ¼ç¤ºçé£æ ·ï¼æ¯å¤§ç²åº¦çä¾èµå
³ç³»ãè EditorUtility.CollectDependencies è·åå°çæ¯å°ç²åº¦çä¾èµå
³ç³»ï¼æä¾èµçç»ä»¶å Shader çé½ä¼ååºæ¥ï¼é常çä»ç»ã
C#
#if UNITY_EDITOR
using UnityEngine;
using System.Collections;
using UnityEditor;
namespace PT.Find
{
[ExecuteInEditMode]
public static class Find
{
[MenuItem("Find/What objects in scene use this?", false, 20)]
public static void SelectSceneUsesOfAsset()
{
Object selectedObject = Selection.activeObject;
if (selectedObject == null)
{
return;
}
Object[] roots = new Object[]{ selectedObject };
var objs = EditorUtility.CollectDependencies(roots);
string path = AssetDatabase.GetAssetPath(selectedObject);
var objs2 = AssetDatabase.GetDependencies(path);
foreach (var obj in objs)
{
Debug.Log(obj.GetType().Name);
}
}
}
}
#endif
#if UNITY_EDITOR
using UnityEngine;
using System.Collections;
using UnityEditor;
namespace PT.Find
{
[ExecuteInEditMode]
public static class Find
{
[MenuItem("Find/What objects in scene use this?", false, 20)]
public static void SelectSceneUsesOfAsset()
{
Object selectedObject = Selection.activeObject;
if (selectedObject == null)
{
return;
}
Object[] roots = new Object[]{ selectedObject };
var objs = EditorUtility.CollectDependencies(roots);
string path = AssetDatabase.GetAssetPath(selectedObject);
var objs2 = AssetDatabase.GetDependencies(path);
foreach (var objin objs)
{
Debug.Log(obj.GetType().Name);
}
}
}
}
#endif
ä¸å¾ä¸è¯´ï¼Unity Editor æä¾çé»è®¤çä¾èµæ¥æ¾çåè½å¥½å¼±ï¼å
æ¬ååä¾èµå
³ç³»ï¼å¼ç¨å
³ç³»ä¸¢å¤±çåè½ãæ许æ们å¯ä»¥å©ç¨è¿äºæ¥å£èªå·±åä¸ä¸ªå¥½ç¨ç¹çä¾èµå
³ç³»æ¥æ¾æ件ã
温馨提示:答案为网友推荐,仅供参考