前回の【Unity2Dサンプルゲーム】爆弾を避けよ!~9~の続きです。
【Player】が破壊されたときだけ、【RetryButton】を表示するようにします。
前提条件
ゲームを実行しても常にRetryButtonが表示されている状態です。
この記事の「爆弾を避けよ!」の作成の流れ
- どうやって【Player】が破壊されたときに表示させるか
- 【PlayerController】スクリプトに記述していく
- ゲームを実行してみる
どうやって【Player】が破壊されたときに表示させるか
【Player】が破壊されたときに、【RetryButton】を表示させることで可能です。
【Player存在】 → 【Player破壊】
【RetryButton非表示】→ 【RetryButton表示】
です。
では表示、非表示はどのようにすればできるのかってはなしになりんす。
少し実験
【RetryButton選択】→【Inspector】→【RetryButtonと書いてあるとこの横】【チェックをはずしたりつけたり】→【Gameビューをみる】→【RetryButtonが表示されたり非表示されたりするのを確認】→【チェックしたままにしとく】
チェックしている状態をアクティブ状態といい、チェックをはずした状態を非アクティブ状態といいます。まあ、オブジェクトを表示したり非表示したりできるってことです。
このチェックをつけたりはずしたりする作業をスクリプトで行っていきます。
【PlayerController】スクリプトに記述していく
【PlayerController】スクリプトを開いて、記述してください。Projectウィンドウで【PlayerController】スクリプトをダブルクリックすることで開くことができます。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class PlayerController : MonoBehaviour {
GameObject retryButton;
// Use this for initialization
void Start () {
this.retryButton = GameObject.Find("RetryButton");
retryButton.SetActive(false);
}
// Update is called once per frame
void Update () {
}
// 右矢印ボタンを押したら移動するメソッド
public void RightArrowDown()
{
transform.Translate(2, 0, 0);
}
// 左矢印ボタンを押したら移動するメソッド
public void LeftArrowDown()
{
transform.Translate(-2, 0, 0);
}
// ぶつかった瞬間にオブジェクトを破壊
void OnTriggerEnter2D(Collider2D collision)
{
retryButton.SetActive(true);
Destroy(gameObject);
}
}
Start(){A} | ゲーム開始時にA処理を行う |
Find(A) | シーンの中からAと同じ名前のゲームオブジェクト1つ探して返す |
A.SetActive(false); | Aを非アクティブ状態(非表示する) |
A.SetActive(true); | Aをアクティブ状態(表示する) |
void Start () {
this.retryButton = GameObject.Find("RetryButton");
retryButton.SetActive(false);
}
シーン中から【RetryButton】を探してそれを【retryButton】変数に格納してます。【retryButton】変数に入っているオブジェクト、つまり【RetyButton】を非アクティブ(非表示)にしてます。
さらにStartメソッド内に書かれているので、ゲーム開始時に上の処理を行います。
// ぶつかった瞬間にオブジェクトを破壊
void OnTriggerEnter2D(Collider2D collision)
{
retryButton.SetActive(true);
Destroy(gameObject);
}
ぶつかったときに【retryButton】変数に入っているオブジェクト、【RetryButton】をアクティブ(表示)するようにしてます。
ゲームを実行してみる
(避けようと思ったのに、一回で破壊されたんだが…( ・∇・))
ゲーム開始時に【RetryButton】は非アクティブ(非表示)になりますが、【Player】が破壊されたときにアクティブ(表示)されるようになってます。
おわりに
あんまり【GameUi】つかわなくてごめん。ほんとはもっと使いたかったんですけどね。他のサンプルゲームでUIスクリプトの説明は詳しく説明します。
次の【Unity2Dサンプルゲーム】爆弾を避けよ!~11~で効果音を鳴らしていきましょう。
コメント