Skip to content

Instantly share code, notes, and snippets.

@yKimisaki
Last active January 3, 2016 05:17
Show Gist options
  • Save yKimisaki/3fd0ab0c12cdb56be21a to your computer and use it in GitHub Desktop.
Save yKimisaki/3fd0ab0c12cdb56be21a to your computer and use it in GitHub Desktop.
using System.Collections.Generic;
using UnityEngine;
namespace Unity.Extensions
{
public static class GameObjectExtensions
{
public static IEnumerable<TComponent> SelectComponents<TComponent>(this IEnumerable<GameObject> source) where TComponent : Component
{
foreach (var go in source)
{
var component = go.GetComponent<TComponent>();
if (component == null)
continue;
yield return component;
}
}
public static TComponent FirstOrDefaultComponent<TComponent>(this IEnumerable<GameObject> source) where TComponent : Component
{
foreach (var go in source)
{
var component = go.GetComponent<TComponent>();
if (component == null)
continue;
return component;
}
return default(TComponent);
}
}
}
@yKimisaki
Copy link
Author

public void OnDrag(PointerEventData eventData)
{
    var hoges = eventData.hovered.SelectComponents<HogeBehaviour>();
    // ...
}

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment