/// <summary>
/// 获取非Shader的内置资源引用
/// </summary>
/// <param name="asset"></param>
/// <returns></returns>
private List <UnityEngine.Object> getReferenceBuildInResourceExcludeShader(UnityEngine.GameObject asset)
{
// 主要提起以下几种资源:
// 1. 内置Texture
// 2. 内置材质
// 人物模型和粒子特效
var assetlist = new List <UnityEngine.Object>();
var allrenders = asset.GetComponentsInChildren <Renderer>();
foreach (var render in allrenders)
{
if (render.sharedMaterial != null && EditorResourceUtilities.isBuildInResource(render.sharedMaterial))
{
assetlist.Add(render.sharedMaterial);
}
}
// UI组件
var allgraphics = asset.GetComponentsInChildren <Graphic>();
foreach (var graphic in allgraphics)
{
if (graphic.material != null && EditorResourceUtilities.isBuildInResource(graphic.material))
{
assetlist.Add(graphic.material);
}
if (graphic.mainTexture != null && EditorResourceUtilities.isBuildInResource(graphic.mainTexture))
{
assetlist.Add(graphic.mainTexture);
}
}
return(assetlist);
}