unity Button按钮点击时改变按钮图片样式

本文详细介绍了在Unity中如何通过编程方式改变按钮的图片。包括点击时临时改变、点击后永久更改以及点击切换两种状态的实现方法,涉及SpriteSwap、脚本控制和按钮叠加隐藏等技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

一、前言

二、点击时改变图片(点击其他物体时会改回去)

三、点击后永久改变图片样式(永久指你不自己改回来)

1.先做一个按钮

 2.准备一个你想换的图片,并把它改成精灵模式

3.开始写代码

 4.成果展示

四、点击改变图片样式,再点一下改回来

1.制作按钮

2.再做一个按钮,把这俩按钮搞的一样大

3.把按钮2放到按钮1下方

4.把按钮2隐藏

5.给按钮加方法

五、成果展示


一、前言

本篇文章有三种改变按钮图片的方法。

按钮原来是(如图1所示)

图1 按钮按下前

 点击的时候,希望它变成(如图2所示)

图2 按钮按下后

 这里也可以变成其他图片,不光是改变颜色

二、点击时改变图片(点击其他物体时会改回去)

添加Button后,改变设置(如图3所示)

图3 改变设置

我们要把这个红色的改成 SpriteSwap(如图4所示)

图4 改变样式

把自己喜欢的图片拖到红色箭头指的那一行,拖进去之后,你点击按钮的时候会直接改变按钮图片样式哦~~~

 其他的地方,你们也可以自己拖图片试一下,总之就是不同情况下改变图片。

三、点击后永久改变图片样式(永久指你不自己改回来)

这个是评论区有问,所以加的。

1.先做一个按钮

按钮初始样式(如图5所示)

图5 按钮初始样式

 面板中按钮位置(如图6所示)

图6 面板中按钮

 按钮的组件(如图7所示)

图7 按钮的组件
 2.准备一个你想换的图片,并把它改成精灵模式

准备的图片(如图8所示)

图8 准备的图片
3.开始写代码

 先把刚刚准备好要替换的图片放到代码里。(如图9所示)

    [SerializeField] Sprite sprite;
图9 替换图片

 把按钮也加在这个代码里。(如图10所示)

    [SerializeField] Sprite sprite;
    [SerializeField] Transform button0;
图10 添加按钮

 现在要添加代码,代码的功能是:当点击按钮的时候,把按钮的图片换成图片1。

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;

public class ChangeButton : MonoBehaviour
{
    [SerializeField] Sprite sprite;
    //注意这里我声明的是Transform
    [SerializeField] Transform button0;
    
    void Start()
    {
        //我需要在Button组件里面加,所以用GetComponent<Button>()
        //当点击时(onClick)
        //因为我一直要看着,有没有点击,所以加方法叫,监听时(AddListener)
        //最后加入方法ButtonDown
        button0.GetComponent<Button>().onClick.AddListener(ButtonDown);
    }

    void ButtonDown() {
        //我需要改的是图片,所以我需要先获取组件Image,所以用GetComponent<Image>()
        //我需要Image组件里的图片,所以用sprite
        //等号后面的sprite是我第一行加的图片1
        button0.GetComponent<Image>().sprite = sprite;
    }
}
 4.成果展示

下图为最后成品(如图11所示)

图11 成品

四、点击改变图片样式,再点一下改回来

这个是评论区又有问,所以加的。

逻辑梳理:

我建两个按钮AB,B把A盖住。

B平时是隐藏的,点击A,显示B。

(这时候B出现了,刚好A被遮住,你只能点到B)

那么点击B,B自己消失,就又只能看见A了

1.制作按钮

和第二节相同。(如图12所示)

图12 按钮制作
2.再做一个按钮,把这俩按钮搞的一样大

这步略,相信你们都会。

3.把按钮2放到按钮1下方

(如图13所示)

图13 按钮位置

这会图片会显示按钮2的图片,因为按钮1被遮住了。

4.把按钮2隐藏

(如图14所示)

图14 隐藏按钮2
5.给按钮加方法

给按钮1加的方法:点击按钮1,显示按钮2

给按钮2加的方法:点击按钮2,把按钮2关掉

按钮1的方法(如图15所示):

图15 第一步
图15 第二步

 按钮2的方法(如图16所示):

图16 按钮2的方法

五、成果展示

成果如下(如图17所示)。

图17 成果
### 实现 Unity按钮点击颜色或样式变化 在 Unity 中实现按钮点击的颜色或样式变化可以通过多种方式完成。对于简单的颜色变换,通常会利用 `Button` 组件自带的功能来设置不同状态下的颜色属性[^1]。 #### 使用 Button 组件内置功能 Unity 的 `Button` 组件提供了直接的方式来自定义按钮处于正常 (`Normal`)、悬停 (`Highlight`) 及选中 (`Pressed`) 状态的表现形式。通过 Inspector 面板中的 Color Tint 属性调整这些状态下按钮的外观特性[^2]。 ```csharp using UnityEngine; using UnityEngine.UI; public class UIButtonColorChange : MonoBehaviour { public Color normalColor = Color.green; // 默认颜色设为绿色 public Color pressedColor = Color.yellow; // 被按压后的颜色变为黄色 private Image buttonImage; void Start() { buttonImage = GetComponent<Image>(); var colors = GetComponent<Button>().colors; colors.normalColor = normalColor; colors.pressedColor = pressedColor; GetComponent<Button>().colors = colors; } } ``` 此代码片段展示了如何编程设定按钮的不同状态颜色。当玩家按下按钮它会改变成指定的颜色;一旦释放,则恢复原状。 #### 利用 Rich Text 进行更复杂的文本格式化 如果希望进一步定制按钮上的文字内容及其表现形式,还可以借助于 Rich Text 功能。这允许开发者应用 HTML 类似的标签结构给 UI 文本对象添加特殊效果,例如更改部分字符的颜色或者增加下划线等[^3]: ```xml <color=yellow>Click</color><color=green>Me!</color> ``` 上述 XML 片段表示一段带有两种不同颜色的文字:“Click”将以黄色呈现,“Me!”则保持绿色不变。 #### 整合第三方插件提升用户体验 为了获得更加丰富的视觉反馈并简化开发流程,考虑引入专门针对 UI 设计优化过的资产包不失为一个好的选择。某些高质量资源不仅能够无缝对接现有项目架构,而且往往附带额外工具帮助快速构建交互性强的应用程序界面[^4]。
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

菌菌巧乐兹

希望能给大家写更多有用的文章~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值