真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

Unity3D中怎么實現(xiàn)Button面板事件綁定功能

這篇文章給大家介紹Unity3D中怎么實現(xiàn)Button面板事件綁定功能,內容非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。

在景寧畬族自治等地區(qū),都構建了全面的區(qū)域性戰(zhàn)略布局,加強發(fā)展的系統(tǒng)性、市場前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務理念,為客戶提供網(wǎng)站設計制作、成都網(wǎng)站設計 網(wǎng)站設計制作定制網(wǎng)站建設,公司網(wǎng)站建設,企業(yè)網(wǎng)站建設,品牌網(wǎng)站設計,全網(wǎng)營銷推廣,外貿網(wǎng)站制作,景寧畬族自治網(wǎng)站建設費用合理。

using System;
using System.Collections;
using UnityEngine.Events;
using UnityEngine.EventSystems;
using UnityEngine.Serialization;
 
namespace UnityEngine.UI
{
 // Button that's meant to work with mouse or touch-based devices.
 [AddComponentMenu("UI/Button", 30)]
 public class Button : Selectable, IPointerClickHandler, ISubmitHandler
 {
  [Serializable]
  /// 
  /// Function definition for a button click event.
  /// 
  public class ButtonClickedEvent : UnityEvent {}
 
  // Event delegates triggered on click.
  [FormerlySerializedAs("onClick")]
  [SerializeField]
  private ButtonClickedEvent m_OnClick = new ButtonClickedEvent();
 
  protected Button()
  {}
 
  /// 
  /// UnityEvent that is triggered when the button is pressed.
  /// Note: Triggered on MouseUp after MouseDown on the same object.
  /// 
  ///
  ///
  /// using UnityEngine;
  /// using UnityEngine.UI;
  /// using System.Collections;
  ///
  /// public class ClickExample : MonoBehaviour
  /// {
  ///  public Button yourButton;
  ///
  ///  void Start()
  ///  {
  ///   Button btn = yourButton.GetComponent

代碼其實挺簡單的,主要是自己new 一個新的unityEvent,然后我們在外界調用。這個UnityEvent通過序列化顯示在面板上。我們可以通過兩種方式綁定事件。第一種就是在面板綁定,第二種就是AddListener添加事件。于是我們可以照貓畫虎擇取我們自己需要的部份寫我們自己需要的事件綁定。代碼如下:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Events;
using UnityEngine.EventSystems;
using UnityEngine.Serialization;
using System;
 
namespace MyEvent
{
 public class MyCompotent : MonoBehaviour {
  
  [Serializable]
  public class MyCompontentEvent:UnityEvent{ }
 
  [FormerlySerializedAs("MyEvent")]
  [SerializeField]
  private MyCompontentEvent myEvent = new MyCompontentEvent();
 
  public MyCompontentEvent MyEvent { get { return myEvent; }set { myEvent = value; } }
 
 
  //執(zhí)行綁定的事件
  public void ExcuteEvent()
  {
   MyEvent.Invoke();
  }
 }
}

我們將腳本掛到空物體上,效果如下:

Unity3D中怎么實現(xiàn)Button面板事件綁定功能

使用方法如下例子:

我們自己寫一個步驟設置器,代碼如下:

namespace MyEvent
{
 public class StepControl : MyCompotent
 {
  public string Name;
  public int Index;
 
 
  private void Start()
  {
   //設置名字 
   //設置Index
   //去做每一步應該設置得事情
   ExcuteEvent();
  }
 }
}

我們在StepControl里設置相同的操作。不同的操作通過面板綁定讓ExcuteEvent()去執(zhí)行。使用unity自帶的消息事件會讓我們開發(fā)輕松很多。如果不使用UnityEvent,我們也可以在StepControl聲明一個我們自己的委托,但是去調用小的操作的時候會需要多寫一點代碼。比如 我們想讓某個物體隱藏,需要單獨寫一個腳本設置物體隱藏并且將函數(shù)綁定到此StepControl的委托上。而在UnityEvent里可以直接通過面板操作實現(xiàn)。

Unity3D中怎么實現(xiàn)Button面板事件綁定功能

關于Unity3D中怎么實現(xiàn)Button面板事件綁定功能就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。


本文題目:Unity3D中怎么實現(xiàn)Button面板事件綁定功能
分享鏈接:http://weahome.cn/article/gpocpd.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部