Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
学ぶ ランダム生成背景。 | Flappy Birdゲームの改良
/
Unityでの格闘ゲーム

bookランダム生成背景。

メニューを表示するにはスワイプしてください

カメラがプレイヤーを追従する機能:

CameraFollow クラスは、カメラが x 軸に沿ってプレイヤーを追従し、カメラの初期 y および z 座標を維持する仕組み。

メソッド:

Start メソッド:

private void Start()
{
    initialPosition = transform.position;
}

目的: ゲーム開始時にカメラの初期位置を initialPosition 変数に格納する処理。

LateUpdate メソッド:

private void LateUpdate()
{
    initialPosition.x = player.transform.position.x;
    transform.position = initialPosition;
}

目的: カメラの位置をプレイヤーの x 軸の動きに追従させる。

仕組み: initialPosition.x = player.transform.position.x;initialPosition の x 座標をプレイヤーの x 座標に合わせ、transform.position = initialPosition; でカメラの位置を更新された initialPosition に設定することで、カメラが x 軸方向でプレイヤーを追従し、元の y および z の位置を維持する。

ParallaxBackground の解説:

ParallaxBackground クラスは、雲などの背景要素を無限に繰り返して、2D ゲームでパララックス効果を生み出す。プレイヤーが背景の範囲外に出ると、背景が自動的に再配置され、無限に続く背景のような錯覚を与える。

メソッド:

Start メソッド:

private void Start()
{
    width = GetComponent<BoxCollider2D>().bounds.size.x;
}

目的: 背景要素の幅を width 変数に初期化する。

仕組み: GetComponent<BoxCollider2D>() で背景要素にアタッチされている BoxCollider2D コンポーネントを取得し、.bounds.size.x でコライダーのバウンディングボックスの幅を取得して、後で使用するために width 変数に格納する。

OnTriggerExit2D メソッド:

private void OnTriggerExit2D(Collider2D collision)
{
    if(collision.tag == "Player")
    {
        var position = transform.position;
        position.x += width * 2f;
        transform.position = position;
    }
}

目的: プレイヤーが背景要素の範囲外に出た際に、その背景要素の位置を再配置し、無限にスクロールする背景の錯覚を作り出す。

仕組み: プレイヤーが背景要素のトリガーコライダーから退出したとき(OnTriggerExit2D(Collider2D collision))、そのコライダーがプレイヤーであるかを確認する(if(collision.tag == "Player"))。背景要素の位置を右方向に幅の2倍だけずらすことで、シームレスなスクロールを実現する(position.x += width * 2f;)。 この調整により、ペアとなる背景要素が画面外にスクロールした後も、背景要素が滑らかに再出現する。

新しい位置を計算した後、スクリプトは背景要素の位置を更新する(transform.position = position;)。この仕組みにより、プレイヤーの動きに合わせて背景が連続してスクロールし続ける効果が得られる。

まとめ:

  • 初期化: ゲーム開始時に背景要素の幅を計算し、保存する;
  • 再配置: プレイヤーが背景要素の範囲外に出たとき、その要素の位置を幅の2倍だけ右にずらし、連続したループ効果を生み出す。

この仕組みにより、背景要素を繰り返し再配置することで、プレイヤーの移動に合わせて無限に続くパララックス背景の錯覚を実現し、滑らかで連続したビジュアル体験を提供する。

question mark

プレイヤーがオブジェクトのトリガーコライダーから退出したとき、オブジェクトの位置はどうなりますか?

正しい答えを選んでください

すべて明確でしたか?

どのように改善できますか?

フィードバックありがとうございます!

セクション 5.  2

AIに質問する

expand

AIに質問する

ChatGPT

何でも質問するか、提案された質問の1つを試してチャットを始めてください

セクション 5.  2
some-alt