![見出し画像](https://assets.st-note.com/production/uploads/images/146267069/rectangle_large_type_2_e5a406dc0191fc271dd6eac94252d7a4.png?width=800)
GameAWeek5-2 フラッピーバードを作ろう【完成編】
【制作期間】だいたい8時間
【制作手順おさらい】
・プレイヤーの作成
リジッドボディを設定、Spaceキーで上方向へジャンプ
上方向への力とグラビティを調整
・パイプの生成
パイプ2本の間隔を設定プレファブ化、Translateで左方向へ移動
当たり判定(collision) 通過判定(trigger)を設定し、一定距離移動で消滅
パイプ生成クラスを作成
生成位置を指定、上下一定範囲にランダムで移動するように設定
コルーチンを利用し、一定間隔でプレファブを生成
・ハイスコア管理
PlayerPrefsでスコアを管理
パイプを通過時に加点される際、スコアと同時にハイスコアを更新
【制作ポイント】
・パイプの生成
![](https://assets.st-note.com/img/1720157012992-8h4m1Jp85X.png)
当初パイプ生成はUpdate関数内に入れていましたが、ゲーム開始と分離するためコルーチンを採用。
それにより、生成間隔もコルーチン内に落とし込むことができました
・ハイスコア管理
今回の一番の難所でした。初学習だったため、どこから手を付けていいか・・・。
ネット記事で見つけたものを無理やり入れようとした結果痛い目を見たため、ハイスコアの管理実装に関して手順を残します。
【スコア管理必要要素】
①現在スコアと、スコアテキスト
現在ハイスコアと、ハイスコアテキスト
![](https://assets.st-note.com/img/1720158002670-NczTq8kMzG.png?width=800)
②現在スコアテキストの更新関数の作成
現在ハイスコアの更新関数の作成
③スコア加算関数の作成
![](https://assets.st-note.com/img/1720157512973-ytl4Cfzmem.png)
・与えたいポイントを引数で与える (int point)
・スコアテキストの更新を行う
・if文を使い、現在のハイスコアをスコアが上回った際にハイスコアを更新
・PlayerPrefs.SetIntでハイスコアを保存
・ハイスコアテキストの更新
④スタート関数の設定
![](https://assets.st-note.com/img/1720157907838-Lxyw5qfKlz.png)
・スコアを初期化
・現在のハイスコアを読み込む(初期値は0)
・スコアテキストとハイスコアテキスト
以上が、スコア管理に必要な最低限度の要素でした
あとは、得点が加算される箇所にAddScore関数を加えたら完成
もっといろいろ要素を追加して、便利にできると思うけれども
とりあえず今はこれで完成!
スコア管理できるようになると、一気にゲーム作ってる感が増しましたね
ゲーム制作、最高!!
この記事が気に入ったらサポートをしてみませんか?