Unity遍历预制体,代码修改参数

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
// 在菜单来创建 选项 , 点击该选项执行搜索代码 
    [MenuItem("Assets/CheckPrefabAnchor修改预制体锚点", false, 10)]
    static void CheckPrefabAnchor()
    {
        int num = 0;
        GameObject[] gameObjects = Selection.gameObjects;
        Debug.Log("本次遍历总数量" + gameObjects.Length);
        foreach (var item in gameObjects)
        {
            if (!item.name.StartsWith("UI_"))//过滤条件
            {
                Debug.Log(item.name + "不符合锚点判断条件");
                continue;
            }
            UIPanel[] uipanels = item.GetComponentsInChildren<UIPanel>(true);
  
            foreach (UIPanel uipanel in uipanels)
            {
                if (uipanel.isAnchored)
                {
                    uipanel.bottomAnchor.target = null;
                    uipanel.topAnchor.target = null;
                    uipanel.leftAnchor.target = null;
                    uipanel.rightAnchor.target = null;
                    Debug.Log(item.name + "/" + uipanel.name + "符合锚点祛除条件", item);
                    num += 1;
                }
                EditorUtility.SetDirty(uipanel);
            }
        }
        Debug.Log("符合要求数量" + num);
        AssetDatabase.SaveAssets();
    }

  

posted @   多见多闻  阅读(477)  评论(0编辑  收藏  举报
(评论功能已被禁用)
相关博文:
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
点击右上角即可分享
微信分享提示