unity3d
उपयोगकर्ता इंटरफ़ेस सिस्टम (UI)
खोज…
कोड में घटना के लिए सदस्यता
डिफ़ॉल्ट रूप से, किसी को निरीक्षक का उपयोग करके घटना की सदस्यता लेनी चाहिए, लेकिन कभी-कभी इसे कोड में करना बेहतर होता है। इस उदाहरण में हम इसे संभालने के लिए किसी बटन की घटना पर क्लिक करने के लिए सदस्यता लेते हैं।
using UnityEngine;
using UnityEngine.UI;
[RequireComponent(typeof(Button))]
public class AutomaticClickHandler : MonoBehaviour
{
private void Awake()
{
var button = this.GetComponent<Button>();
button.onClick.AddListener(HandleClick);
}
private void HandleClick()
{
Debug.Log("AutomaticClickHandler.HandleClick()", this);
}
}
यूआई घटक आमतौर पर अपने मुख्य श्रोता को आसानी से प्रदान करते हैं:
- बटन: on पर क्लिक करें
- ड्रॉपडाउन: onValueChanged
- InputField: onEndEdit , onValidateInput , onValueChanged
- स्क्रॉलबार: onValueChanged
- स्क्रॉलरैक्ट: onValueChanged
- स्लाइडर: onValueChanged
- टॉगल: onValueChanged
माउस श्रोताओं को जोड़ना
कभी-कभी, आप विशेष रूप से माउस द्वारा विशेष रूप से माउस घटनाओं में नहीं प्रदान किए गए विशेष घटनाओं पर श्रोताओं को जोड़ना चाहते हैं। ऐसा करने के लिए, आपको EventTrigger
घटक का उपयोग करके उन्हें अपने आप से जोड़ना होगा:
using UnityEngine;
using UnityEngine.EventSystems;
[RequireComponent(typeof( EventTrigger ))]
public class CustomListenersExample : MonoBehaviour
{
void Start( )
{
EventTrigger eventTrigger = GetComponent<EventTrigger>( );
EventTrigger.Entry entry = new EventTrigger.Entry( );
entry.eventID = EventTriggerType.PointerDown;
entry.callback.AddListener( ( data ) => { OnPointerDownDelegate( (PointerEventData)data ); } );
eventTrigger.triggers.Add( entry );
}
public void OnPointerDownDelegate( PointerEventData data )
{
Debug.Log( "OnPointerDownDelegate called." );
}
}
विभिन्न ईवेंट संभव हैं:
- PointerEnter
- PointerExit
- PointerDown
- PointerUp
- PointerClick
- खींचना
- ड्रॉप
- स्क्रॉल
- UpdateSelected
- चुनते हैं
- अचयनित
- चाल
- InitializePotentialDrag
- BeginDrag
- EndDrag
- प्रस्तुत
- रद्द करना
Modified text is an extract of the original Stack Overflow Documentation
के तहत लाइसेंस प्राप्त है CC BY-SA 3.0
से संबद्ध नहीं है Stack Overflow