一、效果
点了【按钮2】后,会激发(invoke)【按钮1】的OnClick事件
文章来源地址https://www.toymoban.com/news/detail-524507.html
二、激发一个按钮的OnClick事件的方法
- 1、用Invoke()激发
targetButton.onClick.Invoke();
- 2、用ExecuteEvents.Execute()分发
PointerEventData eventData = new PointerEventData(EventSystem.current);
ExecuteEvents.Execute(buttonOne.gameObject, eventData, ExecuteEvents.pointerClickHandler);//分发物体的Click事件
三、代码
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.EventSystems;
using UnityEngine.UI;
/// <summary>
/// 点击一个button,激发另一个button的onClick事件
/// </summary>
public class TestButtonOnClickInvoke : MonoBehaviour
{
public Button buttonOne;
public Button buttonTwo;
// Start is called before the first frame update
void Start()
{
buttonOne.onClick.AddListener(() => Debug.Log("Button1:谁在点我!"));
buttonTwo.onClick.AddListener(() =>
{
Debug.Log("Button2:为什么点的总是我,我也要点一下button1");
//茴【香豆】字的第一种写法
Debug.Log("Button2:我用onClick.Invoke点它");
buttonOne.onClick.Invoke();
//茴【香豆】字的第二种写法
Debug.Log("Button2:我用EventSystems点它");
PointerEventData eventData = new PointerEventData(EventSystem.current);
ExecuteEvents.Execute(buttonOne.gameObject, eventData, ExecuteEvents.pointerClickHandler);//分发物体的Click事件
});
}
}
文章来源:https://www.toymoban.com/news/detail-524507.html
到了这里,关于Unity中如何激发(invoke)一个Button的OnClick事件的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!