public void StartTransmition()
    {
        _state = States.TRAVELING;

        // Activate the duration feedback
        _durationTransform.gameObject.SetActive(true);

        // Configure the particle feedback
        _particle.AddWayPoint(_originUnit.transform.position);

        if (_order != null && _order._endWorldPos != null && _order._endWorldPos != Vector3.zero)
        {
            _particle.AddWayPoint(_order._endWorldPos);
        }

        _particle.AddWayPoint(transform.position);

        if (_targetUnit != null)
        {
            _particle.AddWayPoint(_targetUnit.transform.position);
        }
        else
        {
            _particle.AddWayPoint(_targetPosition);
        }
        _particle.RecalculateTravelSpeed(_duration);

        // Activate the particle feedback
        _particle.Activate();
    }
    void Awake()
    {
        // Retrieve range feedback sprite renderer
        _rangeSprite = gameObject.GetComponent <SpriteRenderer>();

        // Retrieve duration feedback's transform
        _durationTransform = transform.FindChild("Delay");

        // Retrieve paticle and configure it
        _particle = new OrderParticle(transform.FindChild("Particle"));
        _particle.RecalculateTravelSpeed(_duration);

        _state = States.WAITING_ORIGIN;
    }
    void Awake()
    {
        // Retrieve range feedback sprite renderer
        _rangeSprite = gameObject.GetComponent<SpriteRenderer>();

        // Retrieve duration feedback's transform
        _durationTransform = transform.FindChild("Delay");

        // Retrieve paticle and configure it
        _particle = new OrderParticle(transform.FindChild("Particle"));
        _particle.RecalculateTravelSpeed(_duration);

        _state = States.WAITING_ORIGIN;
    }