Unity UGUI 之Button

​本文仅作学习笔记与交流,不作任何商业用途本文包括但不限于unity官方手册,唐老狮,麦扣教程知识,引用会标记,如有不足还请斧正​

1.什么是Button

按钮:Unity - Manual: Button

2.重要参数

2.1 按钮开关

2.2 过渡效果

Unity - Manual: Transition Options

Color Tint

Sprite Swap

Animation

2.3导航模式(切换控件)

之前我在EventSystem提到过Send Navigation Events,那个参数就是直接使用这里Navigation已经设置好的规则:

Unity UGUI 之EventSystem-CSDN博客

Unity - Manual: Navigation Options

特别指出:Explicit可以自己设置切换控件的规则

2.4 手动添加监听事件(重要)

首先,你要有一个疑问,怎么实现点击按钮就能使得游戏内发生一定变化?

其次,你可以搞清楚UinityEvents是什么(其实就是c#事件与委托的可视化与再封装)弄明白之后可以更加加深印象:Unity - Manual: UnityEvents

2.4.1 拖曳添加监听事件

点击"+",你可以给None处拖曳一个Objcet对象,然后你就可以选择该对象上脚本中具体函数

2.4.2 代码动态添加监听事件

PS:AddListener的UnityAction是无参无返回值的委托函数 

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

public class 事件监听 : MonoBehaviour
{
    // Start is called before the first frame update
    void Start()
    {
        Button button = this.GetComponent<Button>();
        button.onClick.AddListener(Function1);
        //button.onClick.RemoveListener(Function1);
    }

    // Update is called once per frame
    void Update()
    {
      
    }
    //随意写一个函数
    public void Function1()
        {
        print("点了一次按钮");
    }
}

注意我现在将”事件监听“这个脚本挂载到了Button控件(对象)上,这样才可以写成this.GetComponent<>(Button);

不然你可能需要寻找该物品(通过名字或者通过标签),甚至是通过事件,依赖注入等方法寻找

GameObject obj = GameObject.Find("物体名称");
if (obj != null)
{
    MyScript script = obj.GetComponent<MyScript>();
}
GameObject obj = GameObject.FindWithTag("标签");
if (obj != null)
{
    MyScript script = obj.GetComponent<MyScript>();
}

  • 18
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值