【Unity】Rigidbodyの物体を反復運動させる方法

unity

こんにちは、のっくんです。

Rigidbodyのついた物体を移動させるには`MovePosition`を使うと良いです。

https://docs.unity3d.com/ja/2018.4/ScriptReference/Rigidbody.MovePosition.html

動画のようにX軸方面に反復運動させるコードは以下の通り。

public class MoveRigidbody : MonoBehaviour
{
    public float length = 4.0f;
    public float speed = 2.0f;
    private Vector3 startPos;

    private Rigidbody rb;
    // Start is called before the first frame update
    void Start()
    {
        startPos = transform.position;

        rb = GetComponent<Rigidbody>();
    }

    private void FixedUpdate()
    {
        rb.MovePosition
            (new Vector3((
            Mathf.Sin((Time.time) * speed) * length + startPos.x),
            startPos.y,
            startPos.z));
    }
}

移動距離や速度を柔軟に変更可能です。

オブジェクトにアタッチして使います。

`IsKinematic`はオンにします。

おわり。

ABOUTこの記事をかいた人

個人アプリ開発者。Python、Swift、Unityのことを発信します。月間2.5万PVブログ運営。 Twitter:@yamagablog