障害物ランを作ろう~13~の続きです。
前回書いたスクリプトとオブジェクトを関連させます。
前提条件
障害物ランを作ろう~13~まで終わらせておいてください。
今回の流れ
- オブジェクトをアタッチする
- ボタンがクリックされたときのイベントを設定
オブジェクトをアタッチする
●オブジェクトをアタッチする
【Camvas選択】→【Inspector】→【Game Finish】→【右の○をクリックしてそれぞれの変数にドロップ&ドロップ】
【Finish Time】→ 【FinishTimeText(Text)】
【Best Time】 → 【BestTimeText(Text)】
【Finish UI】 → 【Finish】
これでアタッチ完了です。
ボタンがクリックされたときのイベントを設定
ボタンがおされたときの処理を設定します。スクリプトでOnRetry関数を書きましたよね。
そこでボタンをクリックしたら、OnRetryを実行するようにしましょう。
●ボタンクリック時のイベント設定
【RetryButton選択】→【Inspector】→【On Click】→【+をクリック】→【Canvasをドラッグ&ドロップ】→【GameFinish】→【OnRetry()をクリック】
もう完成、実行してみよ
>>https://unityroom.com/games/obstacle
こんな感じになりましたか。
もしできていたら、完成です。
長がったですね。
はい、自分も大変でした。大変とか言いたくないけど大変でした。褒めてください。嘘です。
あなたの方が大変だったかもしれません。序盤はGifが少なく、見にくい部分がありましたもんね。今後ももっとわかりやすい記事が作れるようにがんばりマウス。
なにか質問がありましたら、さぎのみや(@saginomiya8)にリプでもDMでもください。
では、お疲れ様でした。あなたがUnityを使っているかぎり、またお会いするでしょう。
コメント
コメント一覧 (2件)
サンプルゲームで勉強させていただいていた初心者です。
とても丁寧な説明や映像の数々でひとつずつ理解しながら進められました!
Unity本で挫折しておりましたが、他の2Dゲームやこちらのサンプルゲームを作ることでUnityの勉強の進め方がなんとなくわかりました!
素敵なサンプルをありがとうございました!
キャンバスの表示の部分で少し問題が起きておりました。
さぎのみやさんが作成されたゲームでは、スタートするとスコアの表示などが最初は消えていてゴールするとそれらが表示されるようになっておりました。ですが、自分でサンプルに倣って作成したものですと、スコアの表示が最初からされたままゲームが進んでしまいました。
GameFinishスクリプトのStart部分で、最初にfinishUIをfalseにしておくことで自身のものは解決できました。
void Start()
{
//最初は非表示。こちらが追記したものです
finishUI.SetActive(false);
//7.もしBestscoreがあるなら、bestscoreに格納
if (PlayerPrefs.HasKey("BestScore"))
{
bestScore = PlayerPrefs.GetInt("BestScore");
}
else
{
bestScore = 999;
}
}
厚かましくなってしまい申し訳ございません。気になってこちらを修正した次第です。
さぎのみやさんがやられているより良いやり方などがありましたら知りたいと思いました。
修正ありがとうございます!
ゲーム開始時からキャンバスの表示がされてしまう場合は、Rさんの言うとおりfinishUIをfalseにする必要があります。
不具合があって申し訳ないです。
いま忙しすぎるので落ち着いたら、このチュートリアルのみならず、「Unishar-ユニシャー」全体を修正していくつもりです。
うちのメディアを使ってくださりありがとうございました!
これからもご覧ください、またどんどんネットで拡散してください!
以上になります。
by saginomiya