動く標的
CoddyのUnityジャーニー「物理演算とゲームプレイ」セクションの一部。レッスン 67/71。
チャレンジ
難しいターゲットを作りましょう。ターゲットは範囲内を滑るように移動し、ボールが当たると倒れます。
Start()では、startX = rb.position.xをそのまま使います。FixedUpdate()では、x軸に沿ってspeedでrb.MovePositionを使って移動し、startXからrange離れたら、値が1または-1のdirectionを反転させます。OnCollisionEnterでは、collision.gameObject.CompareTag("Ball")のとき、name + " hit!"をログに記録し、ボールとターゲットを破棄します。
「プレイ」を押して、3つすべてを倒しましょう。その後、「確認」を押します。
自分で試してみよう
using UnityEngine;
public class Target : MonoBehaviour
{
[SerializeField] private float speed = 2f;
[SerializeField] private float range = 3f;
private Rigidbody rb;
void Start()
{
rb = GetComponent<Rigidbody>();
}
// 左右にスライドする。ボールがターゲットに当たると、ターゲットが倒れる
}
物理演算とゲームプレイのすべてのレッスン
自分で練習してみよう: Unityプレイグラウンド