Unity入門講座|マウスクリックでシーン移動について学ぼう

Unity
Unity講座
うさタブ
うさタブ

今回はUnityのマウスクリックでシーン移動について勉強するッピ!

うさタブ
うさタブ

マウスを押すとシーン移動する仕組みをつくるッピ!

ユウキ
ユウキ

マウスクリックとシーン移動

アイカ
アイカ

まだ習ったことないわ!

うさタブ
うさタブ

ずばり、マウスをポチッとすると、

画面を切り替える方法だッピ!

うさタブ
うさタブ

シーン移動はUnityの基礎基礎ッピ!
絶対覚えておくと良いッピ!

うさタブ
うさタブ

これからこのボタンの配置とシーン移動を一緒に勉強して行くッピよ~

スポンサーリンク
スポンサーリンク

マウスクリックとシーン移動について学ぼう

必要なもの

うさタブ
うさタブ

まずは必要なものを用意するッピ!

  • Unity
  • Windows または Mac のパソコン

が必要ッピよ~!

うさタブ
うさタブ

まだ Unity をダウンロードしてない人は

↓ の記事を参考に必要なものをインストールするといいッピ!

ボタンをつくる

うさタブ
うさタブ

まずはゲーム作成画面をつくってみるッピ!

Unity-Hubを立ち上げて、

2Dまたは3Dでプロジェクトをつくるッピよ~

ユウキ
ユウキ

できた!

うさタブ
うさタブ

いい感じッピ!

次はさっそくシーンをつくっていくッピ!

シーンフォルダがあるのを確認しよう

うさタブ
うさタブ

まずはAssetsの中にある

シーンファイルをクリックするッピ!

うさタブ
うさタブ

次は新しい画面シーンをつくるッピ~

まず

Asset→Scene

をクリックするッピ!

うさタブ
うさタブ

この【Scene】のなかに、

SampleScene』があるのを確認するッピよ~

アイカ
アイカ

あったわ!

新しい画面シーンをつくる

あたらしいシーンを用意しよう

うさタブ
うさタブ

次は

シーンフォルダで右クリック→[作成]→[シーン]

でシーンを作成するッピ!

ユウキ
ユウキ

お! なんかでた

うさタブ
うさタブ

いい感じッピ!

[after]

とわかりやすいように名前をつけてみるッピ!

名前を変えてみよう

うさタブ
うさタブ

サンプルシーンの名前も変えてみるッピ!

[sampleScene]をダブルクリック
または右クリック→名前を変更を選択するッピ!

うさタブ
うさタブ

わかりやすいように

[before]と名前をつけるッピ♪

ユウキ
ユウキ

アフターの反対だな!

アイカ
アイカ

なんだかふしぎなウィンドウが出てきたわ!

うさタブ
うさタブ

これはそのまま

【再ロードを選択すればオッケーッピ!

ユウキ
ユウキ

りょーかい!

[before]シーンの背景を変更する

うさタブ
うさタブ

[before]シーンを切り替えたとき
わかりやすくなるよう「背景色」を変更するッピ!

インスペクター→【camera】→【背景】→スポイト

を選択するッピよ~♪

うさタブ
うさタブ

好きな色を選んで、

メインカメラの色が変わっていればオッケーッピ!

シーンを切り替える

切り替えプログラムをつくる

うさタブ
うさタブ

シーンの切り替えプログラムをつくるッピ~!

うさタブ
うさタブ

まずは、

Assetのシーン部分で
[右クリック]→[作成]→[C#スクリプト]

を選択するッピ!

アイカ
アイカ

できたわ!

うさタブ
うさタブ

よくできてるッピ!

このスクリプト(プログラムの素)に
[changeShean]と名付けるッピ!

プログラムを編集する

うさタブ
うさタブ

そのまま

[changeScene]をダブルクリックして

新たにプログラムを書き込むッピよ!

うさタブ
うさタブ

Visual Studio Code などのコード編集プログラムを起動するッピ!

ユウキ
ユウキ

なんかプログラムが出てきたぞ!

うさタブ
うさタブ

いい感じッピ!

うさタブ
うさタブ

プログラムをよく見てみると

using xxxxx

という文字があることがわかるッピ!

うさタブ
うさタブ

ここは

名前空間

といって、

C#Unityのどんな機能を使うか登録する場所

なんだッピヨ~!

うさタブ
うさタブ

C#プログラムはこんな風につくられているんだッピ!

アイカ
アイカ

そうなのね!

ユウキ
ユウキ

前にやったな!

復習しとこう

うさタブ
うさタブ

準備できたッピか?

それじゃあさっそくプログラムを書いていくッピ!

うさタブ
うさタブ

using UnityEngine;

の下に、


↓の文をコピーして

using UnityEngine.SceneManagement;

と入力するッピ!

うさタブ
うさタブ

これを設定すると

using使います UnityEngineunityエンジンの.SceneシーンManagement管理プログラムを;

という意味になるんだッピ♪

ここまでのコード

入力したコード

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

public class changeScene : MonoBehaviour
{
    // Start is called before the first frame update
    void Start()
    {
        
    }

    // Update is called once per frame
    void Update()
    {
        
    }
}
うさタブ
うさタブ

入力できたら、

    // Start is called before the first frame update
    void Start()
    {
        
    }

    // Update is called once per frame
    void Update()
    {
        
    }

の部分を思い切って削除するッピ♪

ユウキ
ユウキ

ええ! 消しちゃっていいのか?!

うさタブ
うさタブ

そのほうが説明しやすくなるッピよ~♪

うさタブ
うさタブ

さらに削って、

1~2行目もカットするッピよ~♪

ここまでのコード

入力したコード

using UnityEngine;
using UnityEngine.SceneManagement;

public class changeScene : MonoBehaviour
{

}
アイカ
アイカ

ずいぶんスッキリしたわ・・・!

これ動くのかしら?

うさタブ
うさタブ

問題ないッピ!

うさタブを信じて進むッピネ~

ユウキ
ユウキ

頼んだぞ、うさタブ!

シーン変更プログラムを入力する

うさタブ
うさタブ

次は、この

public class の中に

    void Update()
    {
        // クリックされたら実行するプログラムです
        if (Input.GetMouseButton(0))
        {
                SceneManager.LoadScene("after");
        }
    }

と入力するッピネ!

うさタブ
うさタブ

この部分が、シーン変更プログラムになるッピ!

うさタブ
うさタブ

これは、

    void 引数なしプログラムUpdate() リアルタイム更新します
    {
        // クリックされたら実行するプログラムです
       
ifもしも (Input入力があったら.GetMouseButton マウスが押されたらプログラム実行(0 左ボタンを ))
        {
               
SceneManagerシーン切り替え.LoadSceneプログラムを実行(“after”afterを呼び出し);
        }
    }

という意味になるッピよ~

アイカ
アイカ

プログラムの分かれ道
if関数は、前のレッスンでやったね!

ここまでのコード

入力したコード

using UnityEngine;
using UnityEngine.SceneManagement;

public class changeScene : MonoBehaviour
{
    void Update()
    {
        // クリックされたら実行するプログラムです
        if (Input.GetMouseButton(0))
        {
                SceneManager.LoadScene("after");
        }
    }
}
ユウキ
ユウキ

こんな感じかな

アイカ
アイカ

バッチリね!

うさタブ
うさタブ

最高ッピ!

あとはこれをファイルで保存するッピよ~

ゲームオブジェクトを作成する

うさタブ
うさタブ

シーンを切り替えるために、
空っぽのゲームオブジェクトをつくるッピ!

アイカ
アイカ

ゲームオブジェクト?

ユウキ
ユウキ

なんだよそれ?

うさタブ
うさタブ

ゲームオブジェクトは、
ゲームの中に登場するイラストやキューブ・3Dポリゴン・選択ボタンといったものッピ~!

うさタブ
うさタブ

今回は空っぽのゲームオブジェクトをつくって、それを土台にマウスで切り替えるプログラムを仕込むッピよ~!

うさタブ
うさタブ

左のヒエラルキーの枠のなかで右クリック(または[+]ボタン)を押して、

空のオブジェクトを選択

を選択するッピよ~

ユウキ
ユウキ

オッケー!

プログラムをオブジェクトに仕込む

うさタブ
うさタブ

それじゃあ

作ったプログラムをオブジェクトに仕込んでいくっピ!

うさタブ
うさタブ

Unity画面に戻って、

[changeScene]をGame Object
ドラッグ&ドロップする

ッピ!

アイカ
アイカ

ドラッグ&ドロップってなんだったかしら?

ユウキ
ユウキ

ファイルマウスで押しっぱなしにして、

選択したファイルをマウスごと移動することだよ

アイカちゃん!

アイカ
アイカ

そうだったわ!

ありがとうユウキくんっ

アイカ
アイカ

右のインスペクターのほうに

何かでたわ!

うさタブ
うさタブ

プログラムが仕込まれた証拠ッピ!

あともう少しッピ~

シーンビルドに設定

するッピよ~

シーンをプロジェクトに登録する

うさタブ
うさタブ

追加したシーンは
そのままじゃ切り替えられないッピ!

必ずプロジェクトにシーン登録する作業が必要になるッピよ~

うさタブ
うさタブ

[ファイル]→[ビルド設定]

を選択するッピ~

うさタブ
うさタブ

作成した[after]シーンを

枠の中にドラッグ&ドロップするッピ!

うさタブ
うさタブ

こんな風に

[after]シーンが追加されたらオッケーだっピ!

動作確認

うさタブ
うさタブ

最後は動作確認ッピ~!
ゲームの上にある[▶]ボタンを押してゲームを開始するッピ!

ユウキ
ユウキ

できた~!

アイカ
アイカ

やったねユウキくんっ

Unityのマウス入力について

うさタブ
うさタブ

Unityのマウス入力には、

Inputメッソドを使うッピ!

プログラムメッソド発動条件
Input.GetMouseButtonボタンが押されていたら発動
Input.GetMouseButtonDownボタンが押された瞬間に発動
Input.GetMouseButtonUp押されたボタンが開放されたときに発動
ユウキ
ユウキ

インプットメッソド~?

って何だ?

うさタブ
うさタブ

インプットメッソドというのは、

マウスキーボードなど、外部から入力があったときに

発動するプログラムをつくるときに使うものッピ!

アイカ
アイカ

そうなのね!

うさタブ
うさタブ

そしてマウスのInputメッソドは

Input.GetMouseButton

をつかうことが多いッピね~

ユウキ
ユウキ

なあ、うさタブ

using UnityEngine;
using UnityEngine.SceneManagement;

public class changeScene : MonoBehaviour
{
    void Update()
    {
        // クリックされたら実行するプログラムです
        if (Input.GetMouseButton(0))
        {
                SceneManager.LoadScene("after");
        }
    }
}
ユウキ
ユウキ

じゃあこの、

Input.GetMouseButton(0)

(0)ってなんだ??

ユウキ
ユウキ

なんで(0)なのか、理解できないんだけど・・・

うさタブ
うさタブ

それはズバリ

引数ッピね~!

ユウキ
ユウキ

引数~??

アイカ
アイカ

引数ってなんだったかしら・・・?

わたしまだ覚えてなくて

うさタブ
うさタブ

引数というのは、
プログラムが予め仕組んだ、分かれ道条件のことだっピ!

うさタブ
うさタブ

if~~●●分かれ道の条件
{ プログラムの命令文 }

みたいなとき、
実際にその分かれ道の条件が満たされるもの変数
仕込むことができるのが引数なんだッピ!

アイカ
アイカ

ど、どういうことかしら・・・?

ユウキ
ユウキ

むずかしくてワカンネーって

うさタブ!

うさタブ
うさタブ

つまり今回みたいな

(0)なら、マウスの左クリック
マウスの左を押したら発動するプログラム

というのを組むことができるんだッピ!

引数対応するマウスの場所
(0)マウスの左ボタン
(1)マウスの右ボタン
(2)マウスのホイール
ユウキ
ユウキ

わかった!

0が左クリック、1が右クリックみたいな感じになるのか!

うさタブ
うさタブ

その通りッピ!

つまりさっきのコードも、0から1に変えると、

枝分かれの条件が右クリックを押したら~に変わってしまうんだッピよ~

using UnityEngine;
using UnityEngine.SceneManagement;

public class changeScene : MonoBehaviour
{
    void Update()
    {
        // 右クリックされたら実行するプログラムです
        if (Input.GetMouseButton(1))
        {
                SceneManager.LoadScene("after");
        }
    }
}
ユウキ
ユウキ

なるほどなー

アイカ
アイカ

勉強になったわっ!

学習のまとめ
  • Assetsの中のScenesをクリックする
  • サンプルシーンがあるのを確認
  • 左のヒエラルキー下で右クリックをし、新しくシーンを追加
  • 名前を変更
  • ファイル→ビルド設定で新しく使うシーンを追加
  • Assetの下で右クリックを押し、作成→C#スクリプト
  • スクリプトの名前を変更し、ダブルクリックで編集
  • プログラムを書き換えたら保存
  • C#プログラムドラッグ&ドロップカメラに設定
  • 動作を確認

うさタブ
うさタブ

上手くできたッピか?

これからも色んなゲーム作りやプログラムの解説をしていくッピ!

次回も楽しみにしているッピよ~~!

うさタブ
うさタブ

UnityはC#を元に作られているッピ!
まだまだ Unity や C#について勉強したい人は↓の記事を参考にするッピ♪

スポンサーリンク

どうしてもわからない、そんなときは?

ユウキ
ユウキ

うさタブ!

オレ、もっと本格的にゲームが作りたいんだ

アイカ
アイカ

私もだわ!

もっとたくさん実用的なコードを

学ぶことってできないかしら?

うさタブ
うさタブ

おお、2人ともやる気ッピね!

ゲームの作り方を学ぶなら、コレとかどうッピか?


 

うさタブ
うさタブ
Udemy」テレビでも有名な動画教材
人気の機械学習からUnityゲーム講座まで選び放題ッピ!

うさタブ
うさタブ

2DアクションRPG脱出ゲーム

3Dゲーム制作講座まで

買い切り講座だからいつでも勉強し放題ッピよ~!

ユウキ
ユウキ

お!いいじゃん!

アイカ
アイカ

あと、どこか素敵な素材を売っているところはないかしら? 公式の素材販売だと、クレカ支払いしかなくて・・・

ユウキ
ユウキ

小学生じゃクレカで支払えないぜ~

うさタブ
うさタブ

ゲームの素材を買いたいなら、

DLsiteBoothとかどうッピか?

うさタブ
うさタブ

素敵なドット絵や音楽素材がいっぱい売ってるッピ!

うさタブ
うさタブ

しかもUnityアセットストアと違って

クレカ支払いじゃなく、コンビニ支払いができるのもポイントッピ!

ユウキ
ユウキ

すげーカッコいい素材がいっぱいある!

アイカ
アイカ

わたしもさっそくチェックしてみようかな♪

スポンサーリンク
Unityプログラミング
学んで遊んでジャンケンポン!
タイトルとURLをコピーしました