スクラッチからUnityへ変換「関数偏」
スクラッチからUnityへ変換「関数偏」

スクラッチの次は?Unityへシフトアップ!スクラッチブロック→Unity変換表「定義偏」 - ファイブボックス

スクラッチの次は?Unityへシフトアップ!スクラッチブロック→Unity変換表「定義偏」

スクラッチ Unity変換表「定義」

ブロック定義は「関数」と呼ばれる機能で実現します。

関数はその動きを定義する部分(作成する部分)と作成された関数を呼び出す部分が必要になります。また関数には「引数」「戻り値」なども機能もあります。


スクラッチブロック ブロック定義宣言

定義の作成(引数無し)

最も簡単な関数は、引数も戻り値もないパターンの関数です。

関数を定義する場合、頭に型名を指定、その後に任意の関数名を指定、さらに( )(丸カッコ)を記述して、{ }(中カッコ、波カッコ=ブレース)の中に命令文を記述します。

頭の型名ですが戻り値の型を指定するもので、戻り値が無い関数を作成する場合、「void」を指定します。「void」は空(から)の意味を持ち、戻り値が無いことを示唆します。

  • 使用例 戻り値、引数無しの関数定義
void Move() 
{
    transform.position += Vector3.right * 0.01f;    //0.01ずつ右に移動 
}

スクラッチブロック ブロック定義活用

定義の呼び出し(引数無し)

定義を呼び出す場合は、定義した関数名を丸カッコ付きで記述します。

  • 使用例 戻り値、引数無しの関数の呼び出し
if (Input.GetKey(KeyCode.D)) //もしDキーが押されたら 
{
     Move(); //関数 Move() を発動 
}

スクラッチブロック ブロック定義宣言 引数あり

定義の作成(引数あり)

引数とは、関数にバリエーションを与えるもので、関数内で変化させたい部分を引数を使って置き換えます。引数は変数の宣言と同じように、型名と引数名をセットで指定します。また、1つの関数に引数はいくつでも指定することが出来ます。

  • 使用例 戻り値なし、引数ありの関数定義
void Move(float speed)         //引数:小数型のspeed を指定 
{ 
    transform.position += Vector3.right * speed; //speed の速さで右に移動 
}

スクラッチブロック ブロック定義活用 引数あり

定義の呼び出し(引数あり)

引数がある関数を呼び出す場合は、関数名の後のカッコの中に指定する引数の値を記載します。引数が複数ある場合は、,(カンマ)で区切って定義された順番に記述します。

  • 使用例 戻り値なし、引数ありの関数の呼び出し
if (Input.GetKey(KeyCode.D))     //もし Dキーが押されたら 
{ 
    Move( 0.02f );               //関数 Move() に 0.02f の引数を代入し発動 
}

定義の作成(引数あり、戻り値あり)

スクラッチには「戻り値」という機能はありませんが、「戻り値」定義を呼び出したときの結果というものになります。

スクラッチブロック ブロック定義引数あり事例

例えば左のブロックの様に、定義の引数に(数字1)と(数字2)を用意し、定義の内容に、

数字1+ 数字2 の答えを言う 

というブロックを作ったとします。

Unityで同じようにこの関数を定義した時、答えを整数型で求めたい場合は、関数の型に整数型(int型)を指定します。

もとめたい答えは「return」をいう文字の後に指定します。

  • 戻り値、引数のある関数の作成
int Add(int a,int b)   //整数型の引数:a,b 、及び整数型で戻り値を求める関数 
{ 
    return a + b;       //引数:a +引数:b の答えを返す 
}

スクラッチブロック ブロック定義発動 引数あり事例

定義の呼び出し(引数あり、戻り値あり)

戻り値有りの関数を呼び出すには、関数の後のカッコの中に引数を入れて発動します。発動したときにその関数に、関数を発動した結果の値が代入されます。

スクラッチブロック ブロック定義活用事例

例えば左の事例では、スペースキーが押されたとき、関数「足し算」に引数:3 と引数:5 が渡され実行、実行プログラムで答えを言います。

Unityでは関数の実行プログラムで行われるのは計算のみ、発動のタイミングで発言させたり表示させたりします。

  • 関数の発動 引数あり、戻り値有り
if (Input.GetKeyDown(KeyCode.Space)) //スペースキーが押された 
{ 
    Debug.Log(Add(3, 5));            //引数:3,5 を渡して関数を発動 
} 
//Consol に 8 と表示される

ファイブボックスでは、スクラッチはもう卒業、という方向けにUnityの個別指導のオンラインレッスンを行っています。

ご興味のある方は当サイト、オンラインレッスンから、無料体験授業へお問い合わせ下さい。

TOP