Unity_UI_NGUI_组合控件2

发布于:2025-07-29 ⋅ 阅读:(20) ⋅ 点赞:(0)

Unity_UI

Unity_NGUI_组合控件

4.PopupList(下拉列表控件)

4.1 PopupList的作用与使用场景
  • PopupList控件用于在UI中实现下拉选择菜单,允许用户从多个选项中选择一个。
  • 常用于设置选项、筛选条件、模式切换等场景。
  • 支持自定义选项、显示样式、对齐方式等。
4.2 PopupList常用属性
基础制作步骤
  1. 创建一个Sprite做背景,一个Label做显示内容。
  2. 添加PopupList脚本。
  3. 添加碰撞器(Collider)。
  4. 关联Label用于信息更新,选择Label中的SetCurrentSelection函数。
选项设置
  • Options:下拉列表显示内容(每行一个选项,空行表示加一个空选项)。
列表显示设置
  • Position:列表出现位置

    • Auto:自动(推荐,自动判断上下)
    • Above:向上弹出
    • Below:向下弹出
  • Selection:选中操作

    • On Press:按下选中
    • On Click:点击选中
  • Alignment:对其方式

    • Automatic:自动对齐
    • Left:左对齐
    • Center:居中对齐
    • Right:右对齐
    • Justified:两端对齐
字体与外观设置
  • Font:字体
  • Font Size:字体大小
  • TextColor:字体颜色
  • Padding:偏移位置
  • Modifier:修饰方式(强制大写/小写/自定义)
    • None:无
    • To Uppercase:大写
    • To Lowercase:小写
    • Custom:自定义
图集与背景设置
  • Atlas:图集
  • Background:下拉列表背景图
  • Highlight:下拉列表选中图
  • Background(高亮叠加):背景颜色叠加
  • Highlight(高亮叠加):选中高亮叠加
其他设置
  • Overlap:弹出窗口边框与打开内容重叠的数量
  • Animated:是否有默认的弹出动画(禁用可节约性能)
4.3 PopupList脚本控制示例
using UnityEngine;

public class PopupListExample : MonoBehaviour
{
    public UIPopupList popupList;
    public UILabel label;

    void Start()
    {
        // 添加选项
        popupList.items.Clear();
        popupList.items.Add("选项一");
        popupList.items.Add("选项二");
        popupList.items.Add("选项三");

        // 监听选项变化
        popupList.onChange.Add(new EventDelegate(OnPopupChange));
    }

    void OnPopupChange()
    {
        // 获取当前选中项
        string selected = popupList.value;
        label.text = "当前选择:" + selected;
    }
}
4.4 PopupList使用技巧
  • 动态添加/移除选项:可通过代码动态管理items集合。
  • 自定义显示内容:可通过Label实时显示当前选中项。
  • 多语言支持:结合本地化系统动态切换选项内容。
  • 与其他控件联动:选择后可触发其他UI或逻辑变化。

5.Slider(滑动条控件)

5.1 Slider的作用与使用场景
  • Slider控件用于在UI中实现数值的连续或分级调整,常用于音量、进度、亮度等调节。
  • 支持拖拽、点击等多种交互方式。
  • 可自定义外观、步进、方向等。
5.2 Slider常用属性
基础制作步骤
  1. 创建3个Sprite对象作为背景,2个子对象(1个进度,1个滑动块)。
  2. 设置层级关系。
  3. 为根背景添加Slider脚本。
  4. 添加碰撞器(父对象或滑块)。
  5. 关联3个对象(背景、前景、滑块)。
数值设置
  • Value:当前值(0~1),表示滑块当前位置。
  • Steps:步数,将0~1区间分为若干步,步进滑动。
外观设置(Appearance)
  • Foreground:前景(用于缩放,显示进度)。
  • Background:背景。
  • Thumb:拖动块。
拖动方向(Direction)
  • Direction:滑动方向
    • Left To Right:从左到右
    • Right To Left:从右到左
    • Bottom To Top:从下到上
    • Top To Bottom:从上到下
事件设置
  • OnValueChange:值变化时监听脚本,可用于实时响应滑块变化。
5.3 Slider脚本控制示例
using UnityEngine;

public class SliderExample : MonoBehaviour
{
    public UISlider slider;
    public UILabel valueLabel;

    void Start()
    {
        // 监听滑块值变化
        slider.onChange.Add(new EventDelegate(OnSliderChange));
    }

    void OnSliderChange()
    {
        // 获取当前值
        float value = slider.value;
        valueLabel.text = $"当前值:{value:F2}";
    }
}
5.4 Slider使用技巧
  • 分步滑动:设置Steps属性实现分级滑动(如音量10档)。
  • 自定义外观:可替换前景、背景、滑块图片实现不同风格。
  • 方向适配:根据UI布局选择合适的滑动方向。
  • 与其他控件联动:滑块值变化时可驱动其他UI或逻辑。
5.5 Slider最佳实践
  • 滑块大小适中,便于用户拖动。
  • 进度条颜色对比明显,提升可读性。
  • 步进设置合理,避免过细或过粗。
  • 碰撞器覆盖完整滑动区域,保证交互流畅。

6.ScrollBar(滚动条控件)

6.1 ScrollBar的作用与使用场景
  • ScrollBar控件用于在UI中实现内容区域的滚动,常见于列表、文本框、图片浏览等场景。
  • 一般不单独使用,常与滚动视图(如ScrollView)配合。
  • 类似于VS右侧的滚动条。
6.2 ScrollBar常用属性
基础制作步骤
  1. 创建2个Sprite对象(1个背景,1个滚动条)。
  2. 背景父对象添加ScrollBar脚本。
  3. 添加碰撞器(Collider)。
  4. 关联对象(背景、滚动条)。
数值设置
  • Value:当前值(0~1),表示滚动条当前位置。
  • Steps:步数,将0~1区间分为若干步,步进滚动。
外观设置
  • Foreground:滚动条(用于拖动)。
  • Background:背景。
拖动方向
  • Direction:滚动方向
    • Left To Right:从左到右
    • Right To Left:从右到左
    • Bottom To Top:从下到上
    • Top To Bottom:从上到下
事件设置
  • OnValueChange:值变化时监听脚本。
6.3 ScrollBar脚本控制示例
using UnityEngine;

public class ScrollBarExample : MonoBehaviour
{
    public UIScrollBar scrollBar;
    public UILabel valueLabel;

    void Start()
    {
        scrollBar.onChange.Add(new EventDelegate(OnScrollBarChange));
    }

    void OnScrollBarChange()
    {
        float value = scrollBar.value;
        valueLabel.text = $"滚动条值:{value:F2}";
    }
}

7.ProgressBar(进度条控件)

7.1 ProgressBar的作用与使用场景
  • ProgressBar控件用于在UI中显示任务进度、加载进度、血量等。
  • 一般不需要交互,仅用于展示。
  • 通常直接用Sprite的Filled填充模式实现。
7.2 ProgressBar常用属性
基础制作步骤
  1. 创建2个Sprite对象(1个背景,1个进度条)。
  2. 背景父对象添加ProgressBar脚本。
  3. 添加碰撞器(Collider)。
  4. 关联对象(背景、进度条)。
数值设置
  • Value:当前值(0~1),表示进度条当前进度。
  • Steps:步数,将0~1区间分为若干步,分级显示。
外观设置
  • Foreground:进度条(用于填充)。
  • Background:背景。
填充方向
  • Direction:填充方向
    • Left To Right:从左到右
    • Right To Left:从右到左
    • Bottom To Top:从下到上
    • Top To Bottom:从上到下
事件设置
  • OnValueChange:值变化时监听脚本。
7.3 ProgressBar脚本控制示例
using UnityEngine;

public class ProgressBarExample : MonoBehaviour
{
    public UIProgressBar progressBar;
    public UILabel valueLabel;

    void Start()
    {
        progressBar.onChange.Add(new EventDelegate(OnProgressBarChange));
    }

    void OnProgressBarChange()
    {
        float value = progressBar.value;
        valueLabel.text = $"进度:{value:P0}";
    }
}

8.ScrollView(滚动视图)

8.1 ScrollView的作用与使用场景
  • ScrollView控件用于在UI中实现内容区域的滚动显示,常用于列表、背包、聊天框等。
  • 支持内容超出区域时的拖拽、滚轮、弹性回弹等效果。
  • 可与ScrollBar联动,实现横向/纵向滚动条。
8.2 ScrollView常用属性
基础属性
  • Content Origin:内容子对象对齐方式(如Top Left、Center等)。
  • Movement:拖拽方向
    • Horizontal:水平
    • Vertical:垂直
    • Unrestricted:自由
    • Custom:自定义
  • Drag Effect:拖动特效
    • None:无
    • Momentum:惯性
    • Momentum And Spring:惯性+弹性回弹
  • Scroll Wheel Factor:滚动因子,鼠标滚轮滚动的速度和方向。
  • Momentum Amount:惯性量,拖拽松开后滑动的速度。
  • Spring Strength:弹性强度,回弹的速度。
  • Dampen Strength:阻尼强度,滑动减速的快慢。
  • Restrict Within Panel:限制内容在面板内。
  • Constrain On Drag:拖拽时约束内容。
  • Cancel Drag If Fits:内容完全显示时禁止拖拽。
  • Smooth Drag Start:平滑拖拽启动。
滚动条关联
  • ScrollBars:关联水平/垂直滚动条
    • Horizontal:水平滚动条
    • Vertical:垂直滚动条
  • ShowCondition:滚动条显示时机
    • Always:一直显示
    • Only If Needed:需要时显示
    • When Dragging:拖动时显示
8.3 ScrollView使用技巧
  • 内容自适应:配合Grid或Table自动布局内容。
  • 弹性回弹:提升用户体验,防止内容超出边界。
  • 滚动条联动:与ScrollBar组件配合,提升交互性。
  • 性能优化:大量内容时建议使用对象池。
8.4 常见问题与解决方案
  • 内容无法滚动:检查Movement和内容尺寸。
  • 滚动条不显示:检查ScrollBars和ShowCondition设置。
  • 拖拽无弹性:Drag Effect未设置为Momentum And Spring。
  • 内容超出边界:未勾选Restrict Within Panel。
Grid(自动对齐/网格布局控件)
8.5 Grid的作用与使用场景
  • Grid控件用于自动排列子对象,实现背包、商店、排行榜等网格布局。
  • 支持横向、纵向、分页等多种排列方式。
8.5.1 Grid常用属性
排列设置
  • Arrangement:排列方式
    • Horizontal:横向
    • Vertical:纵向
    • Custom:自定义
  • Cell Width:元素宽度
  • Cell Height:元素高度
  • Row Limit:每行/列最大元素数,超出自动换行/分页
排序设置
  • Sorting:排序方式
    • None:无排序
    • Alphabetic:按字母排序
    • Horizontal:横向顺序
    • Vertical:纵向顺序
    • Custom:自定义
  • Inverted:倒序排列
  • Pivot:锚点位置(九宫格九个点)
  • Smooth Tween:平滑动画
  • Hide Inactive:隐藏未激活对象
  • Constrain to Panel:约束在面板内
8.5.2 Grid使用技巧
  • 动态添加/移除子对象:自动重新排列。
  • 配合ScrollView:实现可滚动的网格列表。
  • 排序与倒序:灵活控制显示顺序。
  • 分页显示:通过Row Limit实现分页。

网站公告

今日签到

点亮在社区的每一天
去签到