当前位置: 首页 > article >正文

事件系统简介+Button组件+Toggle简介

UI的事件交互

        Canvas添加

        

        Ignore Reversed Graphics:是否忽略Canvas反向的事件操作

        Blocking Objects:遮挡事件的物体(2D物体【精灵片】,3D物体)

        Blocking Mask:遮挡事件的物体所在的渲染层

        交互元素

        

        Raycast Target:是否接收Canvas的射线

        场景中存在事件系统

        

UI的射线检测会依次检测对象树下的所有元素,有任何射线检测成功,则会反馈到带有事件响应的组件(Button)中

如果想实现射线穿透,可以将前面显示的UI元素的射线检测关闭

Button组件

按钮是否可交互

按钮状切换效果

        动画效果影响的UI元素(Image和Text派生自Graphic)

        效果使用的图片

        普通状态下的颜色

        高亮状态下的颜色(鼠标移入)

        按下状态的颜色(按钮按下)

        失活状态下的颜色(不可交互)

        颜色倍数(RGBA分量乘以倍数)

        切换动画持续时间

是否开启键盘导航

回调代码的结构

委托

相关代码如下:

public delegate void MeDelegate();

public class TestDelegate : MonoBehaviour
{
    //存储委托类型的成员变量
    public UnityAction Func;
    void Start()
    {
        //委托赋值
        Func=Success;
        //调用委托类型的函数
        Func();
    }
    //委托所代表的函数
    public void Success()
    {
        Debug.Log("Success");
    }
}

回调结构:

相关代码如下:

public class TestCallback:MonoBehaviour{
    public UnityAction Callback;
    void Start(){
        //定义回调函数
        Callback=Success;
        //做一些事情
        for(int i=1;i<=1000;i++)
        {
        }
        //完成事情,执行回调函数
        Callback();
    }
    public void Success()
    {
        Debug.Log("Success");
    }
}

按钮添加事件(Unity拖拽)

        添加脚本,内部编写回调函数(挂在场景对象下)        

        找到Button,OnClick事件,添加(脚本所在对象,并选择回调函数)

        运行项目,点击按钮(做一些事情) 

按钮添加事件(代码方式)

public class TestCodeClick : MonoBehaviour
{
    void Start()
    {
        //查找子物体Button
        Transform trf=transform.Find("Button");
        //获取Button组件
        Button btn=trf.GetComponent<Button>();
        //添加按钮点击回调函数
        btn.onClick.AddListener(Success);
        //删除按钮点击回调函数
        btn.onClick.RemoveListener(Success);
        //删除所有按钮点击回调函数
        btn.onClick.RemoveAllListeners();
        //触发调用所有回调函数
        btn.onClick.Invoke();
    }
    
    public void Success()
    {
        Debug.Log("Success");
    }
}
Toggle组件 

Is On:用于判断当前Toggle是否为开启状态

Toggle Transition:Toggle中对勾切换的动画效果

Graphic:Toggle中对勾的贴图

Group:如果Toggle构成组,则需要将ToggleGroup拖给Toggle,例:

编辑各自Toggle文本后,即可实现组内选项只选其中一种的效果

若想要实现组内Toggle全不选的情况,勾选Group组件的Allow Switch Off即可

Toggle事件处理

        判定当前的开关是否打开

       

        动态传参和静态传参

        

该系列专栏为网课课程笔记,仅用于学习参考。 


http://www.kler.cn/a/593017.html

相关文章:

  • 一次Linux下 .net 调试经历
  • 【C++】list(下):list类的模拟实现(含反向迭代器实现)
  • 2025赛逸展,消费电子企业角逐科技创新奖
  • 网络编程--服务器双客户端聊天
  • Java设计模式之享元模式
  • 【深度学习与大模型基础】第7章-特征分解与奇异值分解
  • Docker build 会在本地产生巨大的文件
  • vue3计算当前日期往前推一个月的日期,当前日期往前推7天
  • 用 C 语言理解封装、继承、多态
  • 单机 elasticsearch下载,安装,配置,启动,百度云链接提供
  • 技术视界 | 灵巧手的工作空间:解锁机器人精细操作的无限可能
  • PHP工程师转向Java开发定制的教材及教程信息,结合两种语言的差异点进行针对性推荐
  • 【计算机网络】2物理层
  • 群体智能优化算法-黏菌优化算法(Slime Mould Algorithm, SMA,含Matlab源代码)
  • vmware tools灰化
  • 如何排查和修复 MSSQL 数据库连接失败的问题
  • 【模拟】扫雷
  • 【机器学习】算法分类
  • Python个人学习笔记(18):模块(异常处理、traceback、日志记录)
  • 蓝桥杯备考:奶牛晒衣服