三角関数を使って簡単にオブジェクトを往復移動させてみました。
まず、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;
}
}
これでオブジェクトを思い通りに反復移動させられました。