にしの流ブロック崩しの巻。
前回の続きです。
得点表示します!
ScoreScriptを作成します。
内容はこんな感じです。(後で説明します)
Create Emptyで空のGameDirectorを作成(あるか)
それにScoreControlをアタッチしておく
あとはBlockControlを書き換えておきます。
ScoreScriptの詳しい説明
点数だけは外部から変更できるようpublicにします。
あとは、スコアのオブジェクト用とスコアの文字列
収納用です。
public int ten = 0;
GameObject txt;
string Score;
まずは、スコアのオブジェクトを見つけておきます。
void Start()
{
txt = GameObject.Find("ScoreText");
}
そして、毎フレームごとに得点を更新します。
public void Update()
{
点数の値を文字列に変換し、スコアの文字列を作成
Score = "SCORE:" + ten.ToString();
発見しておいた3Dテキストオブジェクトを書き換えます。
txt.GetComponent<TextMesh>().text = Score;
}
BlockControlの詳しい説明
ブロックからは得点のtenが見えないので
GameObject GD;
ScoreScript SS;
void Start()
{
ゲームディレクターを見つけて
GD = GameObject.Find("GameDirector");
その中のスクリプトをゲットしておく
SS = GD.GetComponent<ScoreScript>();
}
衝突したら
void OnCollisionEnter(Collision col)
{
if (col.gameObject.name == "Ball")
{
相手のスクリプト内の変数を書き換えて
SS.ten += 100;
自分を消すのだよ
Destroy(this.gameObject, 0.1f);
}
}
これで得点が更新されるようになります。
次回は残機数の表示と、ゲームオーバーの
設定をしてみましょう。