LoginSignup
4
7

More than 5 years have passed since last update.

Unityにおける??(null合体演算子)の使用例

Last updated at Posted at 2017-03-06

??(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))]として必須のコンポーネントを指定しておけば問題ない場面が多いかもしれません。

[参考]
必須コンポーネントの指定 http://www.wisdomsoft.jp/654.html

4
7
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
7