プレイするゲームがあっても、自分で作ればいいじゃない!
ということで Unity 初心者が「ゲームを作る」ゲームをやっていきます!
今回は「スコアの加算対応」の記事です
内容
自機が弾をすれすれで避けたときにスコアを加算するようにする
ついでに敵を倒したときやアイテム取得時にもスコアを増やす
プレイヤーに複数のコライダーを設定する
プレイヤーがやられる判定とは別の当たり判定が必要になります
いつものようにコライダーを追加すれば、複数のコリジョンを設定できますが…
普通に追加するだけではやられる判定と同じ扱いになってしまう?ため、
どうにかして別物にしないといけません
子オブジェクトにコンポーネントを追加する
プレイヤーのオブジェクトを親にして、空の子オブジェクトを作成します
この子オブジェクトの方にコライダーとスクリプトを追加して
スコアを加算する処理を実装していきます
子オブジェクトでやるとタグの設定も自由にできるので
プレイヤーと分けて処理することが簡単になります
子オブジェクトの設定例
スクリプトの編集
スコア管理クラスを取得しておいて、弾にヒットしていたらスコアを加算します
public class PlayerScoreArea : MonoBehaviour
{
ScoreManager scoreManager = null; // スコア管理
void Start()
{
// スコア管理オブジェクトを取得する
scoreManager = GameObject.Find("ScoreManager").GetComponent<ScoreManager>();
}
// ヒットしているとき毎フレーム呼び出される
void OnTriggerStay2D(Collider2D other)
{
// 敵の弾にヒット
if (other.gameObject.CompareTag("enemy_bullet"))
{
// スコアを加算
if (scoreManager)
{
scoreManager.AddScore(1);
}
}
}
}
あとは同じように敵を倒したときや
アイテムを取ったとき等にスコアを加算する処理を追記して完成です
サンプル動画
さいごに
今回は数値をそのままスコアに設定していますが
徐々に増えていくようにすると、それっぽく見えたり見えなかったりします
コメント