(この記事の使用環境: Unity2017.1.0b7 Personal, C#, Visual Studio Community 2017, Windows10


自分がUnityで使用している拡張メソッドを備忘録として残しておこうと思います。
徐々に増やしていくつもりなので、そのたびにこのページも更新したいと思います。

なお、拡張メソッドの具体例については、だいたいいつも コガネブログ 様を参考にさせてもらっています。神。


■ 参考文献
拡張メソッド カテゴリーの記事一覧 - コガネブログ
http://baba-s.hatenablog.com/archive/category/%E6%8B%A1%E5%BC%B5%E3%83%A1%E3%82%BD%E3%83%83%E3%83%89


■ 使用している拡張メソッド
こんな感じ。
Unityのプロジェクトビューの適当な位置に置いておくだけで拡張メソッドが使えるようになります。
using System.Linq;


public static class ExtensionMethods
{
    /// <summary>指定したいずれかの値と等しいかどうかを返す</summary>
    /// <example>(使用例) tenki が "Hare", "Ame", "Kumori" のいずれかに等しいか否か
    /// <code>tenki.IsAny("Hare", "Ame", "Kumori")</code></example>
    public static bool IsAny<T> (this T self, params T[] values)
    {
        return values.Any (c => self.Equals(c));
    }

    /*
    /// <summary>文字列が指定されたいずれかの文字列と等しいかどうかを返す</summary>
    public static bool IsAny ( this string self, params string[] values )
    {
        return values.Any (c => self == c);
    }

    /// <summary>整数が指定されたいずれかの整数と等しいかどうかを返す</summary>
    public static bool IsAny ( this int self, params int[] values )
    {
        return values.Any (c => self == c);
    }
    */


    /// <summary>文字列が指定したいずれかの文字列で始まっているかどうかを返す</summary>
    /// <example>(使用例) ぶつかった対象物のゲームオブジェクト名が"EnemyA_"または"EnemyB_"で始まるか否か
    /// <code>collision.gameObject.name.StartsWithAny("EnemyA_", "EnemyB_")</code></example>
    public static bool StartsWithAny ( this string self, params string[] values )
    {
        return values.Any (c => self.StartsWith (c));
    }

}


今回は以上です。
(管理情報: MyUnityData\MyResourcePackages\MyExtensionMethods.unitypackage