【Unity】往復処理


using System.Collections;
using System.Collections.Generic;
using UnityEngine;

// ずっと、往復する
public class Forever_MoveSin : MonoBehaviour
{
    public float speedX = 1; // スピードX:Inspectorで指定
    public float speedY = 0; // スピードY:Inspectorで指定
    public float speedZ = 0; // スピードZ:Inspectorで指定
    public float second = 1; // かかる秒数:Inspectorで指定

    float time = 0f;

    private void FixedUpdate()  // ずっと、往復する
    {
        time += Time.deltaTime;
        float s = Mathf.Sin(time * 3.14f / second); // 移動量を求める
        this.transform.Translate(speedX * s / 50, speedY * s / 50, speedZ * s / 50); 
    }
}

secondの値を変更すると、その値の秒数間でアタッチされたゲームオブジェクトが往復する。

下記のGifは
インスペクターから
second = 6
に値を変更した例

つまり、6秒間で往復を行う