コガネブログ

平日更新を目標にUnityやC#、Visual Studioなどのゲーム開発アレコレを書いていきます

【Unity】【C#】Unity で使える拡張メソッドの記事136選

はじめに

Unity + C#スマホゲームを開発している時に作った拡張メソッドに関する記事を136件まとめました
拡張メソッドに興味がある方はぜひ使用してみて頂ければと思います

.NET Framework

int

  1. ラップアラウンド関数を定義する
  2. 数値を加算して、範囲を超えた分は 0 からの値として処理して返す拡張メソッド
  3. 数値を3桁カンマ区切りの文字列に変換する拡張メソッド
  4. 数値を0埋めの文字列に変換する拡張メソッドの実装
  5. Rubyライクなループ処理を拡張メソッドで実現する

float

  1. float 型の値が正常ではない場合はデフォルト値を返す拡張メソッド
  2. float 型の値が正常な値かどうかを返す拡張メソッド
  3. float型を安全に比較する拡張メソッド

bool

  1. bool型の乱数を返す関数を作る

string

  1. パスワードのようなランダムな文字列を生成して返す関数
  2. NGUIで使用可能なBBCodeを文字列から削除して返す拡張メソッド
  3. Unicode 文字列から Shift-JIS 文字列に変換して返す拡張メソッド
  4. 文字列を指定した文字数で分割する拡張メソッド
  5. 文字列内の改行文字を削除した文字列を返す拡張メソッド
  6. 指定されたパス文字列から拡張子を削除して返す関数
  7. 文字列をBase64でエンコード、デコードするクラス
  8. 指定されたいずれかの文字列を含むかどうかを返す拡張メソッド
  9. 指定された文字列がメールアドレスかどうかを返す関数
  10. 指定された文字列が電話番号かどうかを返す関数
  11. 指定された文字列に半角カナ文字が含まれているかどうかを返す関数
  12. 指定された文字列が郵便番号かどうかを返す関数
  13. 文字列が URL かどうかを確認する関数
  14. 文字列を指定された回数連結して返す拡張メソッド
  15. 文字列から特定の文字列をすべて削除する拡張メソッド
  16. 数値に指定された桁数の固定小数点数を付加した文字列を返す拡張メソッド
  17. スネークケースをキャメルケースに変換する拡張メソッド
  18. 単語の先頭文字を大文字に変換する拡張メソッド
  19. String.Splitをもっと使いやすくする拡張メソッド
  20. 1つの文字列が複数の文字列のいずれかと等しいか判定する拡張メソッド
  21. string.IsNullOrWhiteSpaceを使用できるようにする
  22. リフレクションを使用してToString関数を手軽に実装する
  23. 文字列がnull または空文字列または空白文字のみかを判断する「String.IsNullOrWhiteSpace 」
  24. 文字列がnullまたは空文字列かを判断する「String.IsNullOrEmpty」

StringBuilder

  1. 書式指定可能なStringBuilder.AppendLineを拡張メソッドで実装する

List

  1. 配列やリストが空かどうかを返す拡張メソッド
  2. 全要素が指定した条件を満たさない場合にtrueを返す拡張メソッド
  3. 最小値を持つ要素を全て返す拡張メソッド
  4. 最大値を持つ要素を全て返す拡張メソッド
  5. 指定されたインデックスに要素が存在するかどうかを返す拡張メソッド
  6. 配列やリストのすべての要素に対して指定された関数を適用する拡張メソッド
  7. 複数のシーケンスを連結して返す関数
  8. 指定されたシーケンスから条件を満たさない要素を全て返す拡張メソッド
  9. シーケンスの先頭に値を追加して返す拡張メソッド
  10. シーケンスが空かどうかを返す拡張メソッド
  11. リストの末尾から指定された数の要素を削除する拡張メソッド
  12. リストの先頭から指定された数の要素を削除する拡張メソッド
  13. 最小値を持つ要素を返す拡張メソッド
  14. 最大値を持つ要素を返す拡張メソッド
  15. リスト内に指定された要素があるか調べて存在する場合はその要素をリストから削除する拡張メソッド
  16. 配列内の要素を複数キーでソートする拡張メソッド
  17. 条件を満たす場合にのみリストに要素を追加する拡張メソッド
  18. List を指定されたパラメータでソートできるようにする拡張メソッド
  19. 指定された配列からランダムに要素を返す関数
  20. 配列やリストの中から指定した範囲の要素を抜き出す
  21. 配列やリストから目的の値に最も近い値を取得する拡張メソッド その2
  22. 配列やリストから目的の値に最も近い値を取得する拡張メソッド
  23. 配列やリストから最小値もしくは最大値を持つ要素を検索する拡張メソッド
  24. 配列やリストを逆順に処理する拡張メソッド
  25. リストの先頭にあるオブジェクトを削除して返す拡張メソッド
  26. 配列の要素をランダムに並べ替えて返す拡張メソッド
  27. Arrayクラスのstatic関数をListのメンバ関数のように使用できるようにする拡張メソッド
  28. リスト内の要素をランダムに返す拡張メソッド
  29. 配列内の要素をランダムに返す拡張メソッド
  30. 周回数が取得できるforeach文を拡張メソッドで実現する
  31. 開始値の指定を省略できるEnumerable.Rangeのラッパー関数を作る
  32. ListのAddRangeを拡張する
  33. Array.ForEachを拡張メソッドでスマートに書く

Dictionary

  1. 引数にnullを渡してもエラーにならないContainsKeyの拡張メソッド
  2. Dictionaryに既に指定したキーが存在する場合は代入するAdd関数の拡張メソッド
  3. Dictionary 型のインスタンスからランダムに値を取得する拡張メソッド
  4. Dictionary から指定したキーの要素を削除する前に関数を呼び出す拡張メソッド
  5. Dictionary にキーが存在する場合にのみ関数を呼び出す拡張メソッド
  6. Dictionary を Hashtable に変換する拡張メソッド
  7. Hashtable を Dictionary に変換する拡張メソッド
  8. Dictionaryに既に指定したキーが存在する場合は何もしないAdd関数の拡張メソッド
  9. Dictionary型の指定したキーに値が存在しない場合はデフォルト値を返す拡張メソッド

Type

  1. ジェネリッククラスの名前を名前空間と型引数付きで返す拡張メソッド
  2. ジェネリッククラスの名前を型引数付きで返す拡張メソッド
  3. 指定した型の基底クラスの情報をすべて取得する拡張メソッド

DateTime

  1. DateTime 型をわかりやすい形式の文字列に変換する拡張メソッド

MulticastDelegate

  1. 登録されているデリゲートの数を返す拡張メソッド
  2. Funcデリゲートのnullチェックを省略するための拡張メソッド
  3. Actionデリゲートのnullチェックを省略するための拡張メソッド

Generic

  1. 指定したいずれかの変数がnullの場合にtrueを返す関数
  2. 1つのオブジェクトが複数のオブジェクトのいずれかと等しいか判定する拡張メソッド

enum

  1. HasFlag 関数を Unity でも使用できるようにする拡張メソッド
  2. Enum.TryParseを使用できるようにする
  3. 列挙型の要素の数を取得する
  4. 列挙型の乱数を取得する

IO

  1. 指定したパスにディレクトリが存在しない場合にのみディレクトリを作成する汎用クラス

Unity

MonoBehaviour

  1. StartCoroutineでラムダ式を使用できるようにするラッパークラス

GameObject

  1. GameObject型のインスタンスのnullチェックを省略可能な拡張メソッド
  2. Destroy関数の拡張メソッド
  3. DontDestroyOnLoad関数の拡張メソッド
  4. 指定された名前のオブジェクトが存在する場合は削除する関数
  5. 自分自身を含むすべての子オブジェクトのレイヤーを設定する拡張メソッド
  6. レイヤー名を使用してレイヤーを設定する拡張メソッド
  7. 孫オブジェクトを除くすべての子オブジェクトを取得する拡張メソッド
  8. 生成したオブジェクトの名前に “(Clone)” を付加しない GameObject.Instantiate関数
  9. ゲームオブジェクトを複製する関数
  10. 指定したオブジェクトからルートとなるオブジェクトを取得する拡張メソッド
  11. ローカル座標を維持したまま親オブジェクトを設定する拡張メソッド
  12. 指定したゲームオブジェクトから名前で子オブジェクトを検索する拡張メソッド
  13. すべての子オブジェクトを取得する拡張メソッド
  14. 指定されたゲームオブジェクトがnullまたは非アクティブかどうかを判定する拡張メソッド
  15. 指定されたコンポーネントがアタッチされているかどうかを返す拡張メソッド
  16. RemoveComponentを拡張メソッドで実現する
  17. GetComponentsInChildrenで自分自身を含まないようにする拡張メソッド
  18. 子のオブジェクトが存在するかどうかを確認する拡張メソッド
  19. Instantiate関数を綺麗に記述するためのラッパークラス

Component

  1. Component型のインスタンスのnullチェックを省略可能な拡張メソッド
  2. コンポーネントを破棄する拡張メソッド
  3. 指定されたインターフェイスを実装したコンポーネントを持つ複数のオブジェクトを検索する関数
  4. 指定されたインターフェイスを実装したコンポーネントを持つオブジェクトを検索する関数
  5. インターフェイスを指定して子オブジェクトから複数のコンポーネントを取得する拡張メソッド
  6. インターフェイスを指定して子オブジェクトからコンポーネントを取得する拡張メソッド
  7. インターフェイスを指定して複数のコンポーネントを取得する拡張メソッド
  8. インターフェイスを指定してコンポーネントを取得する拡張メソッド
  9. ゲームオブジェクトから安全にGetComponentする拡張メソッド

Transform

  1. TransformのTranslate関数の拡張メソッド
  2. transform.LookAtをGameObject型のtransformプロパティを介さずに使用できるようにする拡張メソッド
  3. Transform型の位置や回転角、サイズの設定を楽にする その2
  4. Transform型の位置や回転角、サイズの設定を楽にする

Material

  1. マテリアルの透明度を設定しやすくする拡張メソッド

Vector3

  1. Vector3 型の x y z がすべて同じ値かどうかを返す拡張メソッド

Color

  1. 指定された 16 進数を Color 型に変換する関数 その3
  2. 指定された 16 進数を Color 型に変換する関数 その2
  3. 指定された 16 進数を Color 型に変換する関数

NGUI

  1. UIWidgetやUISpriteの上下左右の端の位置を返す拡張メソッド
  2. UITextureやUISpriteで色を簡単に設定できるようにする拡張メソッド

etc

  1. メッセージに書式指定可能なAssert系の関数
  2. メッセージに書式指定可能なMustExtensions系の拡張メソッド
  3. 「Assert.IsNull」「Assert.IsNotNull」に複数の引数を渡せる関数を定義する
  4. アセットバンドルが格納されているフォルダ名を返す関数
  5. 1 つのキーに対して複数の値を登録できる Dictionary を実装する
  6. EditorGUILayout.ObjectFieldの型指定の重複を無くすラッパー関数