给单个预制体批量设置sprite为内置的uimask精灵
发布日期:2022-03-03 10:43:59 浏览次数:7 分类:技术文章

本文共 964 字,大约阅读时间需要 3 分钟。

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();
    }
 

转载地址:https://blog.csdn.net/yangjie6898862/article/details/115545711 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:c#写log到文件
下一篇:2021-05-25开发2D特效遇到Quaternion.LookRotation使用的坑

发表评论

最新留言

关注你微信了!
[***.104.42.241]2024年03月22日 12时51分41秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章