private void Update() { if (_isMove) { transform.position = Vector3.MoveTowards(transform.position, _current, _currentSpeed * Time.deltaTime); if (Vector3.Distance(transform.position, _current) < _distanceBeforeTarget) { transform.position = _current; if (_index == _neededIndex) { _currentSpeed = 0; _currentIndex = _index; EndMoved?.Invoke(_currentIndex); } if (_index >= _count - 1) { _index = 0; } else { _index += 1; } _current = _points[_index].position; _current.y = transform.position.y; Rotate(); } } }
private void OnMoveEnd(int index) { EndMoved?.Invoke(index); }