Skip to content

Instantly share code, notes, and snippets.

@anzfactory
Created August 24, 2015 14:07
Show Gist options
  • Save anzfactory/ef62a53e12c540243883 to your computer and use it in GitHub Desktop.
Save anzfactory/ef62a53e12c540243883 to your computer and use it in GitHub Desktop.
[Unity]子buttonを全部押し続けた場合に何か処理したい..てきな?
using UnityEngine;
using UnityEngine.EventSystems;
public class ButtonGroup : MonoBehaviour
{
public GameObject[] buttons;
private int counter = 0;
private void Awake()
{
foreach (var b in buttons) {
var trigger = b.AddComponent<EventTrigger>();
// IPointerDownHandler
EventTrigger.Entry entryDown = new EventTrigger.Entry();
entryDown.eventID = EventTriggerType.PointerDown;
entryDown.callback.AddListener( (eventData) => { OnTouchDown(eventData); } );
trigger.triggers.Add(entryDown);
// IPointerUpHandler
EventTrigger.Entry entryUp = new EventTrigger.Entry();
entryUp.eventID = EventTriggerType.PointerUp;
entryUp.callback.AddListener( (eventData) => { OnTouchUp(eventData); } );
trigger.triggers.Add(entryUp);
}
}
private void Update()
{
if (counter == buttons.Length) {
KeepPressingAll();
}
}
public void OnTouchDown(BaseEventData eventData)
{
counter++;
}
public void OnTouchUp(BaseEventData eventData)
{
counter--;
}
private void KeepPressingAll()
{
Debug.Log("ぜんぶタップ中!!");
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment