Menu
CoddyTech

タワーを作ろう

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

クレーンが土台の上を左右に移動します。Spaceキーを押すたび、またはクリックするたびに、クレーンからブロックが真下に落ちます。積み重ねたブロックの上に落ちたブロックはその場に残り、次のブロックはその上に着地させる必要があります。外れたブロックは落下していきます。積み重ねたブロックの高さがスコアになります。

ゲーム全体をクレーンに取り付けた1つのスクリプト、Craneに書きましょう。

challenge icon

チャレンジ

難しい

Crane に Crane スクリプトを書きます。Inspector で blockPrefab(Block プレハブ)、top(Base、これまでに積み上げたスタックの一番上)、craneSpeed(3)、craneEdge(4)、fallSpeed(7)を設定します。

  • クレーンは毎秒 craneSpeed 単位の速さで x 軸に沿って移動します。craneEdge を越えると左に折り返し、-craneEdge を越えると右に折り返します。
  • Space キーを押すか左クリックすると、クレーンの x 座標で、クレーンより 1 単位下に Block を落とします。ブロックが落下中は、キーを押しても何も起こりません。
  • 落下中のブロックは毎秒 fallSpeed 単位の速さで下に移動します。
  • その y 座標が top の y 座標 + 1 まで下がり、x 座標が top の x 座標から 1 未満の距離にあると、ブロックは着地します。y 座標を正確に top の y 座標 + 1 に設定し、そのブロックを新しい top にして、スタックの高さを Stack: 1、Stack: 2 などとログに出力します。
  • 着地しなかったブロックは落下し続けます。y = -3 より下に落ちたら破棄し、Missed! とログに出力します。

Play を押してタワーを作り、それから Check を押します。

自分で試してみよう

using UnityEngine;

public class Crane : MonoBehaviour
{
    [SerializeField] private GameObject blockPrefab;
    [SerializeField] private Transform top;
    [SerializeField] private float craneSpeed = 3f;
    [SerializeField] private float craneEdge = 4f;
    [SerializeField] private float fallSpeed = 7f;

    void Update()
    {
    }
}
quiz icon腕試し

このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。

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