Rigidbodyを持つオブジェクトをターゲットの位置に向かわせる
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
/// <summary>
/// Rigidbodyを持つオブジェクトをターゲットの位置に向かわせる
/// </summary>
public class RigidbodyMoveTowards : MonoBehaviour
{
[SerializeField] Transform target;
[SerializeField] float speed;
[SerializeField] float goalDistance;
[SerializeField] Rigidbody _rigidbody;
private void FixedUpdate ()
{
var newPos = Vector3.MoveTowards(_rigidbody.position, target.position, speed * Time.deltaTime);
_rigidbody.MovePosition ( newPos );
var sqrDistance = Vector3.SqrMagnitude ( _rigidbody.position - target.position );
if ( sqrDistance < Mathf.Pow ( goalDistance, 2 ) )
{
Debug.Log ( "Arrived" );
this.enabled = false;
}
}
}