39 lines
999 B
C#
39 lines
999 B
C#
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);
|
|
}
|
|
}
|
|
} |