Menu
CoddyTech

落下するブロック

CoddyのUnityジャーニー「Unityスクリプティングの基礎」セクションの一部。レッスン 61/67。

challenge icon

チャレンジ

中級

ブロックが空から落ちてくるようになりました。前のレッスンの操縦を維持し、Runnerに以下を追加します。

  • Inspectorで設定する3つのフィールド:blockPrefab(GameObject:シーンでBlockプレハブを割り当てます)、spawnEvery(1)、fallSpeed(5)。
  • 生成したすべてのブロックを記録する、blocksという名前のList<GameObject>。
  • spawnEvery秒ごとに、x座標が-laneEdgeからlaneEdgeの範囲でランダム、y = 10、z = 0の位置にBlockを生成し、blocksに追加します。
  • 毎フレーム、blocks内のすべてのブロックを、毎秒fallSpeed単位の速度で下方向に移動させます。

ブロックはまだランナーにダメージを与えません。Playを押して落ちる様子を見てから、Checkを押してください。

自分で試してみよう

using UnityEngine;

public class Runner : MonoBehaviour
{
    [SerializeField] private float speed = 6f;
    [SerializeField] private float laneEdge = 4f;

    void Update()
    {
        Vector3 p = transform.position;
        p.x += Input.GetAxisRaw("Horizontal") * speed * Time.deltaTime;
        p.x = Mathf.Clamp(p.x, -laneEdge, laneEdge);
        transform.position = p;
    }
}

Unityスクリプティングの基礎のすべてのレッスン