つかまえよう
CoddyのUnityジャーニー「Unityスクリプティングの基礎」セクションの一部。レッスン 38/67。
チャレンジ
中級星をキャッチしましょう。0から始まるscoreを追加します。星がキャッチャーから1単位未満の距離まで近づいたら(Vector3.Distanceで測定)、星をキャッチします。
scoreに1を加える。- 新しいスコアで
Caught! Score: 1をログに記録する。 - xとzを保ったまま、星をy = 6まで上に戻し、再び落下させる。
今のところ、キャッチしそこねた星は落下し続けます。これまでの手順の内容はすべて残してください。
自分で試してみよう
using UnityEngine;
public class Catcher : MonoBehaviour
{
[SerializeField] private float speed = 6f;
[SerializeField] private Transform star;
[SerializeField] private float fallSpeed = 3f;
void Update()
{
float x = transform.position.x;
if (Input.GetKey(KeyCode.RightArrow))
{
x += speed * Time.deltaTime;
}
if (Input.GetKey(KeyCode.LeftArrow))
{
x -= speed * Time.deltaTime;
}
x = Mathf.Clamp(x, -4f, 4f);
transform.position = new Vector3(x, transform.position.y, transform.position.z);
star.position += Vector3.down * fallSpeed * Time.deltaTime;
}
}