using UnityEngine; namespace Code.Gameplay.Level { public class SideMovingObstacle : MonoBehaviour { public float speed = 10f; [SerializeField] private float range = 7f; private bool _movingRight; private void Start() { _movingRight = transform.position.x < 0; UpdateRotation(); } private void Update() { var step = speed * Time.deltaTime; transform.Translate(Vector3.forward * step); if (_movingRight && transform.position.x >= range) { _movingRight = false; UpdateRotation(); } else if (!_movingRight && transform.position.x <= -range) { _movingRight = true; UpdateRotation(); } } private void UpdateRotation() { transform.rotation = Quaternion.Euler(0, _movingRight ? 90 : -90, 0); } } }