そういうのがいいブログ

アプリ個人開発 まるブログ

アプリ開発覚え書き

【Unity初心者】関数(メソッド)説明シリーズ その4 用意されている関数-返り値無し 使い方

環境

Unity 2019.3.7f1

はじめに

過去記事で関数(メソッド)の概略を説明しました。marumaro7.hatenablog.com

以前紹介した関数の概略図 image.png


1.用意されている関数-返り値有-引数必要
2.用意されている関数-返り値有-引数不要
3.用意されている関数-返り値無-イベント関数-引数必要
4.用意されている関数-返り値無-イベント関数-引数不要
5.用意されている関数-返り値無-引数必要
6.用意されている関数-返り値無-引数無-①
7.用意されている関数-返り値無-引数無-②
8.自作の関数-返り値有-引数有
9.自作の関数-返り値有-引数無
10.自作の関数-返り値無-引数有
11.自作の関数-返り値無-引数無

関数(メソッド)説明シリーズ その1で"関数の作り方の基本"と8~11番の解説を行いました。
marumaro7.hatenablog.com

関数(メソッド)説明シリーズ その2で1番と2番について解説を行いました。marumaro7.hatenablog.com

関数(メソッド)説明シリーズ その3で3番と4番について解説を行いました。marumaro7.hatenablog.com

今回は、
5.用意されている関数-返り値無-引数必要
6.用意されている関数-返り値無-引数無-①
7.用意されている関数-返り値無-引数無-②
について実際に使ってみます。

用意されている関数-返り値無-引数必要

たとえばこちら
処理内容:コンソールに出力する
関数:Debug.Log(引数);
この関数は今までさんざんつかってきたのでおなじみですね。
詳しい使い方はこちらで解説しています。
marumaro7.hatenablog.com


用意されている関数-返り値無-引数無-①

今回使う関数はこちら
処理内容:エディタを一時停止する
関数:Debug.Break();

引数はないのでカッコの中には何も書きません。
スタート関数にいれて実行してみましょう。

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class test : MonoBehaviour
{
    //スタート関数
    void Start()
    {
        Debug.Break();//エディタを一時停止する
    } 
}


実行すると一時停止ボタンが有効になります。
image.png
一時停止したいタイミングで使うと便利そうですね。

用意されている関数-返り値無-引数無-②

こちらは特定の関数内で書く関数です。


今回使う関数はこちら
処理内容:コルーチンを途中で抜ける
関数:yield break;
何の関数の中で使う?:コルーチン関数

コルーチン関数をさくっと説明

コルーチン関数は中断処理を行う関数です。
IEnumerator型の関数内で処理を中断することができ、
IEnumerator型の関数はStartCoroutine()関数の引数にすることにより使用できます。

わーわー言うておりますが、とりあえずこんな感じで書きます。

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class test : MonoBehaviour
{

    //スタート関数
    void Start()
    {
        StartCoroutine("kansuu0");//引数を"kansuu0"とすることでkansuu0を呼び出し
    }


    IEnumerator kansuu0()//IEnumerator型の関数
    {
        //処理内容 コルーチン関数の中でしか使えない関数がある。
    }
}

そして、

IEnumerator kansuu0()
    {
        //処理内容 コルーチン関数の中でしか使えない関数がある。
    }

この関数内でしか使えない関数が、先程ご紹介した
yield break;
というわけです!


では、実際に使ってみましょう。
kansuu0の関数の中を次のようにしました。

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class test : MonoBehaviour
{

    //スタート関数
    void Start()
    {
        StartCoroutine("kansuu0");//引数を"kansuu0"とすることでkansuu0を呼び出し
    }


    IEnumerator kansuu0()//IEnumerator型の関数
    {
        Debug.Log("あ");//コンソールに あ と表示
        Debug.Log("い");//コンソールに い と表示
        Debug.Log("う");//コンソールに う と表示
        Debug.Log("え");//コンソールに え と表示
        yield break;//関数ここで終了
        Debug.Log("お");//コンソールに お と表示
    }
}


実行結果はどうなるでしょうか??

  結果
image.png
yield break;の行で関数が終了し
Debug.Log("お");
は処理されませんでした。

ということで、特定の関数内でしか使えない関数があるということを覚えておきましょう。

おわりに

これまで、関数の概要説明からそれぞれの関数の具体例を説明してきました。
ひとことで関数といっても使い方が様々であったかと思います。
この記事を通して少しでも関数への理解が深まったのなら幸いです。

わかりにくい点などコメントしていただけると嬉しいです。