using UnityEngine;
public class Player2dTest : MonoBehaviour
{
[SerializeField] Transform _wallLeft;
[SerializeField] Transform _wallRight;
Vector3 _targetTransf;
[SerializeField] float _speed = 5f;
Collider2D _myCol;
bool _isMove = true;
[SerializeField]bool _isWin;
private void Start()
{
_myCol= GetComponent<Collider2D>();
_targetTransf = _wallLeft.position;
}
private void Update()
{
if (_isMove)
{
_myCol.transform.position = Vector2.MoveTowards(_myCol.transform.position, _targetTransf, _speed * Time.deltaTime);
if (_myCol.transform.position == _targetTransf) NewTargetMove();
}
if (Input.GetKeyDown(KeyCode.Space))
{
EndGame();
}
}
void NewTargetMove()
{
if (_targetTransf != _wallRight.position) _targetTransf = _wallRight.position;
else _targetTransf = _wallLeft.position;
}
void EndGame()
{
_isMove = false;
if (_isWin) Debug.Log("You Win");
else Debug.Log("You Lose");
}
private void OnTriggerEnter2D(Collider2D collision)
{
if (collision.tag=="FirstPart") _isWin = true;
}
private void OnTriggerExit2D(Collider2D collision)
{
if(_isWin)_isWin = false;
}
}
Фото сцены и "бегающего объекта"
можно заменить триггеры на boxcast в EndGame()