Unity中Canvas画布UI控件

目录

图片

文本

按钮

切换

滑块

滚动条

滚动视图

下拉菜单

输入字段

图片平铺

图片

在Canvas画布中,可以通过修改Image组件的Source Image属性来改变显示图片类型。其中,Filled类型特别适合用于制作血条效果。

文本

添加 Text 对象并修改 Font Asset 后输入文本。在 Fonts 面板中点击 Aa 图标,选择 Create TextMeshPro Font Asset 即可为文本添加字体样式。注意文本换行可能会超出预期范围,导致内容延伸到黄色方框之外。

按钮

优化button对象,设置以下状态颜色:

  • Normal Color:默认状态颜色
  • Highlighted:鼠标悬停高亮颜色
  • Pressed Color:点击时的颜色
  • Selected:点击后的选中状态颜色

点击按钮使得一个游戏对象变色功能可以通过以下步骤实现:

  1. 创建空游戏对象:在场景中新建一个名为Test的空游戏对象。
  2. 添加脚本:在Test对象上挂载ButtonTest脚本。
  3. 配置按钮事件
    • 在按钮的OnClick()事件中,添加Test游戏对象(而非脚本)。
    • 从对象列表中选择ButtonClickTest方法,以实现点击变色功能。

这样,点击按钮时,Test对象就会执行变色逻辑。

using UnityEngine;
using UnityEngine.UI;

public class ButtonTest : MonoBehaviour
{
    public Image image;
    public bool imageColorchange;

    void Start()
    {
        
    }

    void Update()
    {
        
    }

    public void ButtonClickTest()
    {
        if (!imageColorchange)
        {
            image.color = Color.red;
            imageColorchange = true;
        }
        else
        {
            // 使用正确的Color构造函数,参数范围为0到1
            image.color = new Color(1f, 1f, 1f, 1f);
            imageColorchange = false;
        }
    }
}

切换

由于Toggle自带标签不够清晰,建议改用Text(TMP)组件提升可读性。将目标对象拖入Toggle的OnValueChanged事件,选择GameObject.SetActive方法控制显示/隐藏,注意对象颜色需保持白色否则会影响显示效果。

滑块

优化滑动条数值联动效果。在Test对象中添加以下代码:

public TMP_Text text1;


    public void TestChange(float value)
    {
        text1.text = value.ToString();//数字转string类型
        // text1.text = "你好";
    }

再创建一个Text(TMP)对象,在Test对象中绑定Text1,在Slider中的On Value添加Test对象的TestChange方法后运行。

滚动条

滚动条控制Image移动。在Test对象中添加以下代码:

    //滑块和滑动条
    public Scrollbar Scrollbar; //引用Scrollbar组件
    public GameObject obj; //引用需要移动的物体

    public void ScrollbarChange()
    {
        Vector3 newPosition = new Vector3(Scrollbar.value * 1000f + 560, 291, 0); 
        //Canvas位置
        obj.transform.position = newPosition;
    }

在Test对象脚本组件中拖入滚动条和Image对象,在Scrollbar对象中的On Value加入Test对象并选择ScrollbarChange方法后运行。

滚动视图

滚动条两条+文本/图片等组成,在Scroll View的中的Viewport的Content添加image并添加垂直layout组件控制Control Child Size 的Width让图片平铺满Content,滚动视图对象中的Scroll Rect,选择垂直、水平滚动条以及控制滚轮灵敏度。

下拉菜单

Dropdown,Options控制选项,Value控制初始值,将Test对象拖入Dropdown,选择DropdownChange方法并运行。代码如下:

public void DropdownChange(int index)
    {
        switch (index)
        {
            case 0:
                Debug.Log("You choose A");
                break;
            case 1:
                Debug.Log("You choose B");
                break;
            case 2:
                Debug.Log("You choose C");
                break;
            case 3:
                Debug.Log("You choose D");
                break;
        }
    }

输入字段

IputField

图片平铺

将图片移动到父组件上,点位置按住Alt键点击位置可以快速平铺到父组件上

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值