public class ToolSet
{
public static GameObject GetSelGameObjectInHierarchy()
{
return Selection.activeGameObject;
}
}
[MenuItem("GameObject/一键设置uimask", priority = 0)]
static void CreateEffect()
{
var go = ToolSet.GetSelGameObjectInHierarchy();
var checkgo = go;
bool isOk = false;
while (checkgo != null)
{
if (checkgo.name == "WindowLayer")
{
isOk = true;
break;
}
checkgo = checkgo.transform.parent.gameObject;
}
if(!isOk)
{
Debug.LogError("请把界面放到WindowLayer下面");
return;
}
var coms = go.GetComponentsInChildren<Image>(true);
foreach(var item in coms)
{
item.sprite = AssetDatabase.GetBuiltinExtraResource<Sprite>("UI/Skin/UIMask.psd");
}
EditorUtility.SetDirty(go);
while(go.transform.parent != null)
{
if(go.transform.parent.name == "WindowLayer")
{
break;
}
go = go.transform.parent.gameObject;
}
PrefabUtility.ReplacePrefab(go, PrefabUtility.GetPrefabParent(go), ReplacePrefabOptions.ConnectToPrefab);
AssetDatabase.SaveAssets();
AssetDatabase.Refresh();
}