Esempio n. 1
0
        private Tween(bool isSingle)
        {
            _instance = Pool <TweenInstance> .Spawn();

            _id = _instance.instanceId;
            _instance.returnToPoolUponStop = isSingle;
        }
    private Tween CreateTween()
    {
        if (TweenInstance != null)
        {
            TweenInstance.Kill();
        }

        Vector3  destination = TweenData.Destination;
        float    duration    = TweenData.Duration;
        Ease     easeSetting = TweenData.EaseSetting;
        int      loops       = TweenData.Loops;
        LoopType loopSetting = TweenData.LoopSetting;

        Tween tween = null;

        switch (_tweenAnimType)
        {
        case TweenAnimType.Scale:
            tween = CreateScaleTween(destination, duration, easeSetting, loops, loopSetting);
            break;

        case TweenAnimType.Move:
            tween = CreateMoveTween(destination, duration, easeSetting, loops, loopSetting);
            break;

        case TweenAnimType.Rotate:
            tween = CreateRotateTween(destination, duration, easeSetting, loops, loopSetting);
            break;
        }

        return(tween);
    }
 public void PauseTween()
 {
     if (TweenInstance.IsPlaying())
     {
         TweenInstance.Pause();
     }
 }
    private void OnDisable()
    {
        TweenInstance.Kill();

        if (TweenData.ResetOnDisable)
        {
            ResetTransform();
        }
    }
    IEnumerator PlayTweenWithDelay(float delay)
    {
        yield return(new WaitForSeconds(delay));

        if (!TweenInstance.IsPlaying())
        {
            TweenInstance.Play();
        }
    }
    public void PlayTween()
    {
        UpdateTweenData();

        TweenInstance = CreateTween();

        ResetTransform();

        if (TweenData.StartDelay > 0)
        {
            StartCoroutine(PlayTweenWithDelay(TweenData.StartDelay));
        }
        else
        {
            TweenInstance.Play();
        }
    }