【Unity】C#の基本構文『if』

 

『if』文とは

条件により処理を分岐させたいときに使います。

 

 

もくじ

1.基本構文
2.構文パターン
3.具体例
4.Unityでの使用例【スマホでタッチを検知する】

 

 

基本構文

 

スクリプト

※プログラミングは基本的に、すべて半角英数字で記述します。上記では便宜上全角を使用していることをご了承ください。

 

スクリプトの解説

上から順に実行されます。

まず「条件A」が検証され、「条件A」を満たしていると、

「実行A」が実行され、処理が終わればif文が終了します。

 

「条件A」を満たさなければ、次の「条件B」が検証され、

「条件B」も満たさなければ、「else(それ以外)」の中に入り、

「実行C」が実行されます。

 

上から下へと順に検証されていき、条件を満たした段階で、

その中が実行され、if文が終了します。

 

「else」は、どの条件も満たさなかった場合に、実行される部分となり、

必要がなければ書かなくてもよいのですが、書く場合には、

必ず一番最後に書かなければなりません。

 

 

構文パターン

「if」文は以下のような書き方もできます。

 

パターン1

「if」のみでも問題ありません。
「else-if」や「else」はなくても問題ありません。

 

パターン2

「else-if」はいくつあっても問題ありません。
「else」はなくても構いませんが、記述する場合には必ず最後に記述します。

 

パターン3

「else-if」だけがなくても問題ありません。

 

パターン4

if文の中が1行のみの場合には、「{ }」は省略できます。

 

 

具体例

それでは具体例を見てみましょう。

 

スクリプト

 

使用されている変数・関数

&&:「AND」「かつ」, ||:「OR」「あるいは」, ==:「等しい」
Debug.Log(ans):UnityエディタのConsoleにansを出力する関数

 

スクリプトの解説

上記コードで、最終的にConsoleに出力される数字は何でしょうか。

 

答えは、「15」です。

 

まず、1つ目の条件を見ていきましょう。

「num_1 > 10 && num_2 == 5」となっていますが、

「「num_1」が10より大きく、かつ「num_2」が5の場合」

という意味ですね。

「num_1」は10なので、条件を満たしていません。

なので、次の条件へと移ります。

 

では、2つ目の条件を見てみましょう。

「num_1 == 10 || num_2 == 4」となっていますが、

「「num_1」が10、あるいは「num_2」が4である場合」

という意味ですね。

「num_1」が10なので、条件を満たしています。

なので、その中の「ans = num_1 + num_2」が実行されます。

 

この実行部分は、ansに「num_1 + num_2」の結果を代入するという意味なので、

ansは15となり、最終的にansがconsoleに出力されるので、

「15」がconsoleに出力されることになります。

 

 

Unityでの使用例

スマホでの「タッチ」を検知するコードになります。

 

スクリプト

 

使用されている変数・関数

Input.touchCount:スマホでタッチ(タップ)された回数が格納されている
Input.GetTouch(0):座標などのタッチ情報を取得する関数
TouchPhase.Began:画面に指が触れたとき
TouchPhase.Moved;画面上で指が動いたとき
TouchPhase.Stationary:指が画面に触れているが動いていないとき
TouchPhase.Ended:画面から指が離れたとき

 

スクリプトの解説

「Input.touchCount > 0」は、

「スマホのタッチ回数が0より大きい場合」という意味であり、

上記では「スマホのタッチ回数が0より大きければ、タッチ情報を取得する」

という処理が行われています。

 

タッチがされていなければInput.touchCountは0なので、

条件は満たされずif文は無視されます。

 

タッチ情報が取得された後、

今度はその取得したタッチ情報をもとに分岐が発生しています。

 

1つ目のif文では、タッチされたかどうかを検証して、

2つ目のif文では、タッチされた情報が何であるかで条件分岐させています。

 

上記コードをUpdate関数内に記述すれば、スマホのタッチを検知して、

いろいろな処理を行うことができます。