hch
2025-11-26 07a96a1c67dea5271046c904dc82a73f19133f9c
0312 引导增加模糊搜索和指令模式
2个文件已修改
54 ■■■■■ 已修改文件
Main/System/HeroUI/HeroUIManager.OnTeam.cs 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/System/NewBieGuidance/NewBieWin.cs 33 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/System/HeroUI/HeroUIManager.OnTeam.cs
@@ -528,6 +528,27 @@
        RefreshServerLockIndex();
    }
    #endregion
    //上阵中的武将找出等级最低的
    public int GetHeroIDAtLowLV()
    {
        int minLV = int.MaxValue;
        int minID = -1;
        var team = TeamManager.Instance.GetTeam(TeamType.Story);
        for (int i = 0; i < team.serverHeroes.Length; i++)
        {
            if (team.serverHeroes[i] != null)
            {
                if (team.serverHeroes[i].level < minLV)
                {
                    minLV = team.serverHeroes[i].level;
                    minID = team.serverHeroes[i].heroId;
                }
            }
        }
        return minID;
    }
}
Main/System/NewBieGuidance/NewBieWin.cs
@@ -381,21 +381,44 @@
    }
    //BaseCanvas/MainInterfaceWin/Widget_RightBottom/Container_Function/Function_Grid/Grid_6/Content/Btn_@*
    //BaseCanvas/MainInterfaceWin/Widget_RightBottom/Container_Function/Function_Grid/Grid_6/Content/Btn_@
    //分割成BaseCanvas/MainInterfaceWin/Widget_RightBottom/Container_Function/Function_Grid/Grid_6/Content 和 Btn_
    //在WindowCenter.Instance.uiRoot的 BaseCanvas/MainInterfaceWin/Widget_RightBottom/Container_Function/Function_Grid/Grid_6/Content下查找以Btn_开头的第一个子物体
    //在WindowCenter.Instance.uiRoot的 BaseCanvas/MainInterfaceWin/Widget_RightBottom/Container_Function/Function_Grid/Grid_6/Content下
    // 查找以Btn_开头的第一个子物体
        //支持路径末尾加@*做模糊查找
    //支持路径末尾加@做模糊查找 第一个子物体
    private Transform FindTransform(string path)
    {
        if (!path.EndsWith("@*"))
        if (!path.EndsWith("@"))
        {
            return UIManager.Instance.GetUIRoot().transform.Find(path);
        }
        var paths = path.Split('/');
        var newPath = string.Join("/", paths, 0, paths.Length - 1);
        string findName = paths[paths.Length - 1].Replace("@*", "");
        string findName = paths[paths.Length - 1];
        //只有一个@ 才做模糊查找,两个@则取出中间的字符串作为指令标识再做逻辑
        var arr = paths[paths.Length - 1].Split("@");
        if (arr.Length == 3)
        {
            findName = arr[0];
            var code = arr[1];
            if (code == "herolv")
            {
                int heroID = HeroUIManager.Instance.GetHeroIDAtLowLV();
                if (heroID == -1)
                {
                    //确实不存在 则不引导
                    return null;
                }
                return UIManager.Instance.GetUIRoot().transform.Find($"{newPath}/{findName}{heroID}");
            }
            Debug.LogError("引导未知的模糊查找指令:" + code);
            return null;
        }
        findName = paths[paths.Length - 1].Replace("@", "");
        var parent = UIManager.Instance.GetUIRoot().transform.Find(newPath);
        if (parent == null)
        {