【Unity】オブジェクトを簡単に往復移動させる

投稿者: | 2021-04-06

三角関数を使って簡単にオブジェクトを往復移動させてみました。

まず、Desmos | グラフ計算機で往復するグラフを作ります。sin(x)だと一定間隔で往復し続けます。

xに値をかけると、振動数を変えられます。

また、xを二乗すると、だんだん振動数が上がります。

三乗だと、もっと上がるペースが早いです。

全体に値をかけると、往復する幅が伸縮します。

オブジェクトを移動するときに、この値を使います。Cubeを空のゲームオブジェクトの子にして、スクリプトを付けました。

Positionは0にしています。スクリプトでは、経過時間と三角関数を使ってX軸にそってローカル位置を変えます。

using UnityEngine;

public class SideStep : MonoBehaviour
{
    float sec;

    // Start is called before the first frame update
    void Start()
    {
        
    }

    // Update is called once per frame
    void Update()
    {
        sec += Time.deltaTime;

        Vector3 pos = default;
        pos.x = Mathf.Sin(Mathf.Pow(sec, 2.5f)) * 3f;
        transform.localPosition = pos;
    }
}

これでオブジェクトを思い通りに反復移動させられました。

コメントを残す

メールアドレスが公開されることはありません。