指定したTypeのinterfaceをすべて取得するメソッド
/// <summary>
/// 指定したTypeのinterfaceをすべて取得する
/// </summary>
/// <typeparam name="Type"></typeparam>
/// <returns></returns>
public static List<Type> GetInterfaces<Type> ( params string[] tags )
where Type : IGettable
{
if ( tags.Length == 0 )
{
Array.Resize ( ref tags, 2 );
tags[0] = TagName.GameController;
tags[1] = TagName.Player;
}
var interfaces = new List<Type>();
foreach ( var tag in tags )
interfaces.AddRange ( GameObject.FindWithTag ( tag ).GetComponents<Type> () );
return interfaces;
}