道路交通
CoddyのUnityジャーニー「Unityスクリプトの基礎」セクションの一部。レッスン 83/85。
チャレンジ
難しい車を道路に走らせます。
spawnEvery秒ごとに、(-9, 0.5, lanes[Random.Range(0, lanes.Length)])に車を生成してリストに追加します。- 各車を
carSpeedで +x 方向に移動させます。x が9を超えたら、破棄してリストから削除します。 - x 方向の距離が
1.5未満、かつ z 方向の距離が1未満の車があると、Hit!をログに出力し、ホッパーをstartに戻します。
「プレイ」を押すと、車が次々に通り過ぎます。その後、「確認」を押します。
自分で試してみよう
using System.Collections.Generic;
using UnityEngine;
public class Crossing : MonoBehaviour
{
[SerializeField] private GameObject carPrefab;
[SerializeField] private float[] lanes;
[SerializeField] private float spawnEvery = 1f;
[SerializeField] private float carSpeed = 5f;
private Vector3 start;
void Start()
{
start = transform.position;
}
void Update()
{
if (Input.GetKeyDown(KeyCode.UpArrow))
{
transform.position += new Vector3(0f, 0f, 2f);
}
if (Input.GetKeyDown(KeyCode.DownArrow) && transform.position.z > start.z)
{
transform.position -= new Vector3(0f, 0f, 2f);
}
if (transform.position.z >= 4f)
{
Debug.Log("You made it!");
enabled = false;
return;
}
// 車については次のレッスンで。
}
}
Unityスクリプトの基礎のすべてのレッスン
自分で練習してみよう: Unityプレイグラウンド