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

#環境
Unity 2019.3.7f1

#はじめに
過去記事で関数(メソッド)の概略を説明しました。
https://qiita.com/Maru60014236/items/412925cdefd7a462caf8

以前紹介した関数の概略図
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/613985/a160cd37-2e11-33b7-be67-6befa872b820.png)




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

関数(メソッド)説明シリーズ　その1で"関数の作り方の基本"と8～11番の解説を行いました。
https://qiita.com/Maru60014236/items/2373c5582be82c63158f

今回は、
**1.用意されている関数-返り値有-引数必要**
**2.用意されている関数-返り値有-引数不要**
について実際に使ってみます。

#用意されている関数-返り値有-引数必要
今回使う関数はこちら
**処理内容**：名前指定でシーンを取得
**関数**：SceneManager.GetSceneByName(“引数(存在しているシーンの名前)“);
**返り値の型**：Scene


####返り値がある場合のポイント
 "返り値がある"ということはその値を入れる変数が必要となります。
 返り値と同じ型の変数を宣言しておきましょう。

 今回の関数の返り値の型は Scene なので変数の宣言は、このように書いておきます。

```CSharp
private Scene a;//Scene型の変数aを宣言
```

　
あとはこの変数に
SceneManager.GetSceneByName(“引数(存在しているシーンの名前)“)
の関数を代入するだけです。
引数の部分はプロジェクト新規作成時に勝手に作られているSampleSceneにします。




```CSharp
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.SceneManagement;//シーンマネージャーを使う時は追加

public class test : MonoBehaviour
{
    private Scene a;//Scene型の変数aを宣言

    //スタート関数
    void Start()
    {
        a= SceneManager.GetSceneByName("SampleScene");//シーン名SampleSceneのシーンを取得し、変数aに代入
        Debug.Log(a);//変数の中身をコンソールに表示        
    }
}
```
※追加
Debug.Log関数：aの中身をコンソールに表示します。
using UnityEngine.SceneManagement;　：シーンマネージャーを使用するときは必要です。

実行すると、aの中にはシーンが入っていることがわかります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/613985/cfc83b53-b17c-ff53-8b07-99d2dd33f24f.png)

無事この関数を使うことができました！

####ちなみに
シーン名を取得するには
取得したシーンが入っている変数.name
で取得できます。

```CSharp
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.SceneManagement;//シーンマネージャーを使う時は追加

public class test : MonoBehaviour
{
    private Scene a;//Scene型の変数aを宣言
    private string b;//string型の変数bを宣言

    //スタート関数
    void Start()
    {
        a= SceneManager.GetSceneByName("SampleScene");//シーン名SampleSceneのシーンを変数aに代入
        Debug.Log(a);//変数の中身をコンソールに表示
        b = a.name;//aのシーンの名前を取得し変数bへ代入
        Debug.Log(b);//bの中身をコンソールに表示
    }
}
```
　
変数bに取得したシーンの名前が入りました！
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/613985/90d3fe37-677f-1fd6-cc9d-69d52a756356.png)


#用意されている関数-返り値有-引数不要

使う関数はこちら
**処理内容**：スクリーンの高さの取得
**関数**：Screen.height;
**返り値の型**：int

返り値の型は Scene なので変数の宣言は、このように書いておきます。

```CSharp
    private int a;//int型の変数aを宣言
```

あとはこの変数にScreen.height;を代入するだけでスクリーン高さが取得できてしまいます！

```CSharp
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class test : MonoBehaviour
{
    private int a;//int型の変数aを宣言
            //スタート関数
    void Start()
    {
        a= Screen.height;//スクリーンの高さの取得を行い、その返り値を変数aに代入
        Debug.Log(a);//変数の中身をコンソールに表示       
    }
}
```
※追加
Debug.Log関数：aの中身をコンソールに表示します。

実行すると変数aの中にスクリーン高さが取得されていることがわかります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/613985/e42a743f-b1db-058e-1f12-9d41e8dc6c31.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/613985/6be39df8-5cea-9e85-6a62-0e55ae2fa568.png)


#おわりに
返り値のある関数は変数に入れて使う！
　
次回はイベント関数を説明します！