見出し画像

【Day8 / 100】起業に向けてAIと二人三脚!ゲーム作り 100日チャレンジ【3画面遷移させる】

こんにちは。ゆるふわ女医 Sakiです。
私は3Dモデリングを主軸とした起業を目指し、目下勉強中です。

3Dモデリングについては、アクセサリー作成を進めており、試作段階に入ったため、一旦3Dモデリングの勉強は一時中断中です✨✨
(✨詳細はまた後日✨)
そして、現在は新たな挑戦、Unityの練習に入っています😆
前回に引き続き、頼れるAI先生、Claudeに手引きしてもらいます🥸
今回のテーマは前回作ったゲームに「タイトル→ゲーム→結果の3画面遷移」です。

では、ゆるふわ女医名物、てんやわんやの勉強をお楽しみください✨



🎮 正方形をジャンプさせるゲーム「じゃんぴん正方形」を3画面遷移させる

1.GameOver画面への遷移を実現するには何が必要か?

いつもどおり、Claude先生からの質問です🧐

タイトル画面に必要な要素は何だと思いますか?

必要な要素 = タイトル画面に表示すべきもの
だと思います。
なので、
「①タイトルのUI、②ゲームスタートのUI、③ゲーム終了のUIとそれらに紐づけるスクリプトが必要だと思います。」
と答えます。

完璧な分析とClaude先生に褒めて頂きました😆

2.新しいsceneを作る

前回同様、新しいシーンを作成します。
ScenesフォルダにTitleという名前のシーンを作成し、Build Settingsにも登録します。

続いて、タイトル画面にテキストとボタンを追加していきます。

タイトル画面にテキストとボタンを追加

Start / Finishボタンのスクリプト作成&紐づけ

Startボタンの処理を指示するScriptを作っていきます。
これもほぼ前回同様のコードです😆(省略)
動作の関数は「OnStartButton()」としました。
サクっと作って、インスペクターのクリック時()という項目で紐づけます。
Runtimeとなっている欄の隣の欄を「OnStartButton()」に変えるのを忘れずに💦

続いてFinishボタンのスクリプトを作成します。

//アプリケーションの終了
Application.Quit(); 

今回新しくアプリケーションの終了を指示するコードを学びました。
では、これを用いて先ほどと同様のことにサクッと紐づけまでやります😊

ボタンの動作を確認

Playを押して動作を確認✅
Startを押すといつものジャンピン正方形のゲーム画面へ遷移しました。

ですが、Finishボタンを押しても何も変わりません。
そこで、Claude先生にこの旨を報告しました。

なんと、Application.Quit()はエディタ上では動作しないと!
エディタで終了を確認したい場合のコードがあるということを学びました。
このコードがあるとPlayモードが終了となるそうです。
なかなかUnity奥深い😮

このコードを追加して、再度Playすると
ちゃーんとPlayモードが終了されました😆!

Gameover画面にHome画面への遷移ボタンを付ける

前回、Gameover画面では「Restartボタン」は作っていたのですが、「Homeボタン」(Home画面へ遷移するボタン) は作っていませんでした💦

そんなのゲームじゃない!と思い、追加することにしました。

Homeボタンを追加

ボタンが2つになったので、バランスを考えて場所も変えます。
Homeボタンは、Restartボタンを複製して作ったのですが、その場合、スクリプトの紐づけも複製されるので注意が必要です⚠️

同じ動作のスクリプトがないので、新しくスクリプトを作成して紐づけることにします。
作業内容は先ほどと全く同じなのでSkipします🤣
PlayでTitle画面へ遷移することも確認できました🎉

無事完成です🥳🥳🥳

🎮まとめ

今回は前回の内容を繰り返し行うだけだったので、割とスムーズに作業が終わりました。

では、いつもどおりClaude先生のまとめに入ります🥸
今回学んだことは、

//アプリケーションの終了
Application.Quit(); 
//これはエディタ上では作動しない!
//エディタ上で動作確認したいときは
#if UNITY_EDITOR
UnityEditor.EditorApplication.isPlaying = false;
#else
Application.Quit();
#endif

//と変えてコードを書く。


//スクリプトの紐づけで、関数の指定を忘れない!

といったところです。

フィードバックはこんな感じ😆
今回も完璧のお言葉を賜りました👍

相変わらず✨ほめ上手、Claude先生✨
今回も新しいゲームが無事に作れました🌸
徐々に一つのテーマでオリジナリティを出せるようになってきました😆
自分自身でも成長を感じます✨✨✨

今回はここまで。今回使用したC#のコードは一番下に載せています。
よかったら、このゲーム作りにチャレンジしてみてください☺️

また、この記事が良いな😆と思われたら「スキ♥️」を頂けると励みになります😌
次回のチャレンジも/お楽しみに✨


//TitleButton.cs
using UnityEngine;
using UnityEngine.SceneManagement;
public class TitleButton : MonoBehaviour
{
    // Start is called once before the first execution of Update after the MonoBehaviour is created
    public void OnStartButton()
    {
        SceneManager.LoadScene("SampleScene");
    }
}
//TitleButton.cs
using UnityEngine;
using UnityEngine.SceneManagement;
public class FinishButton : MonoBehaviour
{
    // Start is called once before the first execution of Update after the MonoBehaviour is created
    public void OnFinishButton()
    {

#if UNITY_EDITOR
UnityEditor.EditorApplication.isPlaying = false;
#else
        Application.Quit();
#endif
    }


}
//HomeButton.cs
using UnityEngine;
using UnityEngine.SceneManagement;
public class HomeButton : MonoBehaviour
{
   
    public void OnHomeButton()
    {
        SceneManager.LoadScene("Title");
    }
    
}

他にも、過去にこんなゲームを作りました😆
良かったら見てくださいね👍

いいなと思ったら応援しよう!

Saki Imai |起業を目指すゆるふわ女医 記事を読んで頂きありがとうございます。頂いたチップは製品開発に使用させて頂きます。今後ともよろしくお願いいたします🙇