Skip to content

Instantly share code, notes, and snippets.

@v21
Last active August 29, 2015 14:05
  • Star 6 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
Star You must be signed in to star a gist
Save v21/1d8d5f484c512961deab to your computer and use it in GitHub Desktop.
Unity3D new UI convienience extensions
using System.Linq;
using UnityEngine;
using System;
using System.Collections.Generic;
using Debug = UnityEngine.Debug;
using Object = UnityEngine.Object;
using Random = UnityEngine.Random;
using UnityEngine.EventSystems;
using UnityEngine.Events;
public static class Extensions
{
public static void AddListener(this EventTrigger eventTrigger, EventTriggerType type, UnityAction<BaseEventData> action)
{
if (eventTrigger.delegates == null)
{
eventTrigger.delegates = new List<EventTrigger.Entry>();
}
var entry = eventTrigger.delegates.Find(e => e.eventID == type);
if (entry == null)
{
entry = new EventTrigger.Entry();
entry.eventID = type;
entry.callback = new EventTrigger.TriggerEvent();
eventTrigger.delegates.Add(entry);
}
entry.callback.AddListener(action);
}
public static void SetSelected(this EventSystem eventSystem, MonoBehaviour selected)
{
var pointer = new BaseEventData(eventSystem);
eventSystem.SetSelectedGameObject(selected.gameObject, pointer);
}
public static void SetSelected(this EventSystem eventSystem, GameObject selected)
{
var pointer = new BaseEventData(eventSystem);
eventSystem.SetSelectedGameObject(selected, pointer);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment