using UnityEngine; public class Sin2D : MonoBehaviour { public float distance = 20.0f; public float frequency = 5.0f; public float speed = 0.1f; public float yMax = 1.0f; public bool moveRight = true; Vector3 pos; Vector3 move; Vector3 localScale; void Start() { pos = transform.position; move = transform.position; localScale = transform.localScale; } void FixedUpdate() { if (moveRight) { MoveRight(); } else { MoveLeft(); } if (transform.position.x < pos.x - distance || transform.position.x > pos.x + distance) { transform.position = pos; move = pos; } } void MoveRight() { move += transform.right * speed; transform.position = move + transform.up * Mathf.Sin(Time.time * frequency) * yMax; } void MoveLeft() { move -= transform.right * speed; transform.position = move + transform.up * Mathf.Sin(Time.time * frequency) * yMax; } }