Unityで障害物を行ったり来たりさせる
※自分用メモ
Unityで障害物をいったりきたりさせる
using UnityEngine; [DisallowMultipleComponent] public class Oscillator : MonoBehaviour { [SerializeField] Vector3 movementVector; // where to move [SerializeField] float period; // seconds it takes for full cycle float movementFactor; Vector3 startingPos; // Start is called before the first frame update void Start() { startingPos = transform.position; } // Update is called once per frame void Update() { if (period <= Mathf.Epsilon) return; float cycles = Time.time / period; const float tau = Mathf.PI * 2f; float rawSinWave = Mathf.Sin(cycles * tau); movementFactor = rawSinWave / 2 + 0.5f; Vector3 offset = movementVector * movementFactor; transform.position = startingPos + offset; } }