Exemplo n.º 1
0
    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();
            }
        }
    }
Exemplo n.º 2
0
 private void OnMoveEnd(int index)
 {
     EndMoved?.Invoke(index);
 }