【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画面へ遷移するボタン) は作っていませんでした💦

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

ボタンが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");
}
}他にも、過去にこんなゲームを作りました😆
良かったら見てくださいね👍
いいなと思ったら応援しよう!
記事を読んで頂きありがとうございます。頂いたチップは製品開発に使用させて頂きます。今後ともよろしくお願いいたします🙇