??(null合体演算子)とは
?? 演算子は、null 合体演算子と呼ばれます。左側のオペランドが null 値でない場合には左側のオペランドを返し、null 値である場合には右側のオペランドを返します。
使用例
if文の時
sample.cs
var boxCollider = gameObject.GetComponent<BoxCollider> (); //コンポーネントを取得
if (BoxCollider == null)
{
// 取得できなかったら追加する
BoxCollider = gameObject.AddComponent<BoxCollider> ();
}
??を使用した書き方
sample.cs
//コンポーネントを取得できなかったら追加する
var boxCollider = gameObject.GetComponent<BoxCollider> () ?? gameObject.AddComponent<BoxCollider> ();
すっきり書けました!
[追記]
そもそも、取得元のオブジェクトにMonoBehaviourを継承したクラスをくっつけて[RequireComponent(typeof (BoxCollider))]として必須のコンポーネントを指定しておけば問題ない場面が多いかもしれません。