Unity动态修改按钮点击效果

news2024/9/27 19:14:14

动态修改按钮色块,达到保留选中效果。

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

public class Demo: MonoBehaviour
{
    private Button _frontBtn;
    private Button _backBtn;
    
    public ColorBlock NormalColorBlock;

    public ColorBlock chooseColorBlock;
    // Start is called before the first frame update
    void Start()
    {
        _frontBtn = transform.Find("FrontBtn").GetComponent<Button>();
        _backBtn = transform.Find("BackBtn").GetComponent<Button>();
        
        _frontBtn.onClick.AddListener(OnFrontBtn);
        _backBtn.onClick.AddListener(OnBackBtn);
    }

    public void OnBackBtn()
    {
        backSelected = true;
        frontSelected = false;

        FrontBtnNormalUI();
        BackBtnChooseUI();

        FocusCabinetMnr.instance.FocusBack();

    }

    public void OnFrontBtn()
    {
        backSelected = false;
        frontSelected = true;

        FrontBtnChooseUI();
        BackBtnNormalUI();

    }
    
    public void SetButtonsInteractableState(bool flag)
    {
        _returnBtn.interactable = flag;
        _frontBtn.interactable = flag;
        _backBtn.interactable = flag;
    }

    #region 按钮颜色表现

    public void FrontBtnChooseUI()
    {
        _frontBtn.colors = new ColorBlock
        {
            normalColor = chooseColorBlock.normalColor,
            highlightedColor = chooseColorBlock.highlightedColor,
            pressedColor     = chooseColorBlock.pressedColor,
            selectedColor    = chooseColorBlock.selectedColor,
            disabledColor    = chooseColorBlock.disabledColor,
            colorMultiplier    = 1.0f,
            fadeDuration       = 0.1f
        };
    }

    private void FrontBtnNormalUI()
    {
        _frontBtn.colors = new ColorBlock
        {
            normalColor = NormalColorBlock.normalColor,
            highlightedColor = NormalColorBlock.highlightedColor,
            pressedColor     = NormalColorBlock.pressedColor,
            selectedColor    = NormalColorBlock.selectedColor,
            disabledColor    = NormalColorBlock.disabledColor,
            colorMultiplier    = 1.0f,
            fadeDuration       = 0.1f
        };
    }

    private void BackBtnChooseUI()
    {
        _backBtn.colors = new ColorBlock
        {
            normalColor = chooseColorBlock.normalColor,
            highlightedColor = chooseColorBlock.highlightedColor,
            pressedColor     = chooseColorBlock.pressedColor,
            selectedColor    = chooseColorBlock.selectedColor,
            disabledColor    = chooseColorBlock.disabledColor,
            colorMultiplier    = 1.0f,
            fadeDuration       = 0.1f
        };
    }

    private void BackBtnNormalUI()
    {
        _backBtn.colors = new ColorBlock
        {
            normalColor = NormalColorBlock.normalColor,
            highlightedColor = NormalColorBlock.highlightedColor,
            pressedColor     = NormalColorBlock.pressedColor,
            selectedColor    = NormalColorBlock.selectedColor,
            disabledColor    = NormalColorBlock.disabledColor,
            colorMultiplier    = 1.0f,
            fadeDuration       = 0.1f
        };
    }

    #endregion
    
   
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1988684.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【React】深入解析ref的使用与潜在问题

文章目录 一、ref的基本用法二、常见错误解析三、实例解析四、错误分析与解决五、注意事项六、总结 在React开发中&#xff0c;ref常用于访问DOM元素或组件实例。正确使用ref可以极大地提升用户体验&#xff0c;特别是在需要与DOM交互的场景中。然而&#xff0c;错误或不当的re…

奥运会Ⅷ--生成式人工智能的力量倍增器

生成式人工智能在商业领域的崭新时代 随着 OpenAI 的ChatGPT、Anthropic 的Claude和 Google 的Bard的推出&#xff0c;大规模文本分析和自然语言处理 (NLP) 的长期梦想瞬间成为现实。AI 不仅令人信服地通过了图灵测试&#xff0c;还催化了企业战略的范式转变。突然之间&#x…

8.5 day bug

bug1 没有适当的引号&#xff0c;引言就不是真正的引言 问了通义&#xff0c;原来用引言需要使用单引号括起来 bug2 没理解题意&#xff0c;挺好一网站可惜是英文的&#xff0c;顺便帮翻译还没反馈渠道帮… 问了通义&#xff0c;原来是要改变continueLoop的值 bug3 好家伙&a…

ts-node报错ERR_UNKNOWN_FILE_EXTENSION

问题 有个monorepo项目&#xff0c;在最外层一次性打包 3 个项目的脚本已经成功实现&#xff0c;如下&#xff1a; "build:test": "cross-env NODE_ENVtest vite build --mode test && esno ./build/script/postBuild.ts", "build:prod"…

一行代码实现图片懒加载?分享 1 段优质 HTML 代码片段!

本内容首发于工粽号&#xff1a;程序员大澈&#xff0c;每日分享一段优质代码片段&#xff0c;欢迎关注和投稿&#xff01; 大家好&#xff0c;我是大澈&#xff01; 本文约 700 字&#xff0c;整篇阅读约需 1 分钟。 今天分享一段优质 HTML 代码片段&#xff0c;只需一行代码…

MBD软件开发之数据管理

模块化开发中&#xff0c;模型集成和代码集成是很多工程师非常关心的问题。 常见的代码集成方式有两种&#xff0c;一是单元级模型上生成代码&#xff0c;在代码上做集成&#xff0c;一是模型集成之后&#xff0c;再去生成集成级别的代码。无论采用哪种方式&#xff0c;模型级…

网络端口转发

一. 如图网络拓扑 光猫改桥接之前光猫自身也会有一层局域网&#xff0c;光猫ip为局域网额的192.168.1.1 当改桥接之后&#xff0c;只有一层路由器的局域网&#xff0c;路由器为局域网的192.168.31.1 此时从公网对内网进行访问时&#xff0c;先访问到路由器的公网ip的某个端口…

从零开始搭建监控系统 (二)

从零开始搭建监控系统 (二) 监控系统架构 部署 文件目录 rootchuango:/opt/prometheus# tree -L 1 . ├── docker-compose.yml ├── grafana_data ├── grafana.ini ├── prometheus_data └── prometheus.yml # grafana_data, prometheus_data 2个文件为空目录do…

下载安装ansible后,缺失pyyaml,pip安装时又出错,升级时又由于时Python2.7,不好升级遇到的一系列问题。

经过上一篇文章&#xff0c;我虽然误删了CentOs自带的python和yum&#xff0c;但是我重新将他们恢复了。这里记住默认的python版本是2.7.5。 我使用yum安装好ansible后&#xff0c;检查我的ansible版本的时候&#xff0c;发生了错误&#xff0c;提示没有yaml模块。 1 验证ans…

js事件循环机制(宏微任务队列都是先进先出)

文章目录 1.什么是事件循环2.主线程、任务队列、同步任务、异步任务、微任务、宏任务&#xff08;1&#xff09;主线程&#xff08;2&#xff09;同步任务&#xff08;3&#xff09;异步任务&#xff08;微任务、宏任务&#xff09;&#xff08;4&#xff09;任务队列 3.执行流…

乔布斯对产品,团队,人才的理解

乔布斯的设计理念和管理理念是他领导Apple取得成功的核心因素。以下是对他在产品设计和团队管理方面理念的详细描述 乔布斯的设计理念 1. 简约主义 简洁与直观&#xff1a;乔布斯强调设计的简约性。他相信产品应该尽可能简单且易于使用&#xff0c;去除一切不必要的复杂性。例如…

AIoT新技术融合基础设计课程开发与运营案例分析

本文来自下面的论文的第4部分&#xff1a;《Research on Basic Engineering Design Course Development and Application of New Technology AIoT (Artificial Intelligence of Things) Convergence Education》&#xff0c;作者是Yunja Hwang&#xff0c;来自韩国檀国大学工学…

IDEA左下角不显示本地修改的localChanges信息-git

IDEA左下角不显示本地修改的localChanges信息-git 取消勾选这个

【RTT-Studio】详细使用教程十:TM1638驱动数码管

文章目录 一、简介二、TM1638地址组三、TM1638的两种数码管使用方式四、TM1638数据格式五、按键扫描和键扫复用六、完整代码 一、简介 TM1638是深圳市天微电子有限公司设计的一款带键盘扫描接口的LED&#xff08;发光二极管显示器&#xff09;驱动控制专用芯片&#xff0c;内部…

React18+Vite+Eectron从入门到实战系列之一环境安装篇

如果我们的技术栈是react&#xff0c;也想要用electron来开发一个桌面的多端应用该怎么做呢&#xff1f;这篇文章选择了react的技术栈&#xff0c;讲解了环境的初始化步骤 实现效果 步骤 创建 react 项目 npm create vitelatest my-react-app安装依赖 cd my-react-app npm i…

勒索软件、供应链攻击等带来的思考!

2023年勒索软件、供应链攻击、地缘政治冲突与黑客活动主义、国家黑客间谍与APT组织活动成为网络安全的热点话题&#xff0c;生成式人工智能技术的武器化更是给动荡的全球网络安全威胁态势增加了不确定性、不对称性和复杂性。 即将到来的2024年&#xff0c;随着网络犯罪的规模化…

基于卷积神经网络ResUnet 多模态融合实验、BraTS 3d数据集(nii.gz)4模态融合分割

1、前言 之前介绍了unet对BraTS 3d数据集的2d图片分割&#xff0c;实现思路如下&#xff1a; 1、对BraTS 3d数据集进行切片&#xff0c;沿着某个模态的横断面切割 2、划分数据集、包括训练集、验证集等等 3、网络训练 4、评估模型性能等等 具体的可以参考本文&#xff1a;…

黑丝或者白丝,都可以用LoRA(Stable Diffusion进阶篇:ComfyUI 附加网络)

前言 在学习WebUI的那些基础知识点的时候&#xff0c;有一个东西是每一个初学者都绕不开的大山-附加网络。 这个东西对于每一个接触Stable Diffusion的小伙伴来说就像是小学门口小卖部卖的辣条、初中课本上的涂鸦、高中数学卷解不开的最后一道大题。 学习过WebUI里Stable Di…

基础岛 - 8G显存验证书生·浦语大模型的Demo

因为以前用过LMDeploy&#xff0c;所以本章的内容相对熟悉。 另外&#xff0c;因为教程写的很详细保姆级&#xff0c;所以大多数情况直接复制执行命令即可。开发机的创建略过。 总体验证结论&#xff1a; LMDeploy的模型加载有点慢&#xff0c;但推理速度快&#xff0c;符合预…

将tsx引入vue

按钮 vue <cl-batch-btn >新增批量</cl-batch-btn> import batch from "//modules/ad/components/ uploading/batch.vue" import ClBatchBtn from "/~/crud/src/components/batch-btn"; tsx