Example #1
0
        public void Spin(bool startSpin = false)
        {
            _spinSequence.Kill();
            //first dfeine if it will be clockwise or counterclockwise
            var signal = Random.value > 0.5f ? 1 : -1;
            //get a random duration
            var duration = Random.Range(GameManager.DURATION_MIN_SPIN, GameManager.DURATION_MAX_SPIN);
            //get a random spin speed
            var speed = Random.Range(GameManager.SPEED_MIN_SPIN, GameManager.SPEED_MAX_SPIN);

            if (startSpin)
            {
                _spin    = GameManager.SPEED_MIN_SPIN * signal;
                speed    = GameManager.SPEED_MAX_SPIN;
                duration = GameManager.DURATION_MIN_SPIN;
            }
            speed *= signal;

            //set the spin motion
            _spinning = true;
            _spinSequence.SetEase(Ease.OutBounce);
            _spinSequence.Append(DOTween.To(() => _spin, x => _spin = x, speed, duration).OnComplete(() => { Spin(); }));
        }