private Sequence Seq;// секвенция для DoTween
Использую.
Seq = DOTween.Sequence();
Seq.Append(rt.DOAnchorPos(Vector2.zero, 0.4f).SetEase(Ease.InQuad));
Seq.Play();
А перед выходом из сцены - уничтожаю.
Seq.Kill();
Но если я выхожу, то в консоли получаю ошибку. Причем не каждый раз, а через 3-4 раза.
MissingReferenceException: The object of type 'Transform' has been destroyed but you are still trying to access it.
Your script should either check if it is null or you should not destroy the object.
UnityEngine.Transform.get_localScale () (at <b0fc6facff52490f8c5788181f70c5cc>:0)
DG.Tweening.ShortcutExtensions+<>c__DisplayClass44_0.<DOScale>b__0 () (at <5ddb5fa70dfe40d2818192400111b9ec>:0)
DG.Tweening.Tweener.DoStartup[T1,T2,TPlugOptions] (DG.Tweening.Core.TweenerCore`3[T1,T2,TPlugOptions] t) (at <5ddb5fa70dfe40d2818192400111b9ec>:0)
DG.Tweening.Core.TweenerCore`3[T1,T2,TPlugOptions].Startup () (at <5ddb5fa70dfe40d2818192400111b9ec>:0)
DG.Tweening.Core.TweenManager.Update (DG.Tweening.Tween t, System.Single deltaTime, System.Single independentTime, System.Boolean isSingleTweenManualUpdate) (at <5ddb5fa70dfe40d2818192400111b9ec>:0)
DG.Tweening.Core.TweenManager.Update (DG.Tweening.UpdateType updateType, System.Single deltaTime, System.Single independentTime) (at <5ddb5fa70dfe40d2818192400111b9ec>:0)
DG.Tweening.Core.DOTweenComponent.Update () (at <5ddb5fa70dfe40d2818192400111b9ec>:0)
Подскажите, где может быть ошибка? Хотя бы на какой объект обратить внимание? Из текста ошибки не пойму, какой объект вызывает эту ошибку
SetLink(rt) попробуй
Никогда этим не пользовался. Что это и как это поможет?
Автоматически килляет твин, если объект, указанный в скобках, был удалён, но только что узнал, что на секвенцию это не работает. (Да и посмотрев твою секвенцию могу предложить её вообще не использовать, так как тут всего один твин)
На самом деле секвенция такая: Seq = DOTween.Sequence(); Seq.Append(rt.DOAnchorPos(Vector2.zero, 0.5f).SetDelay(0.5f).SetEase(Ease.InCubic)); Seq.Append(rt.DOAnchorPos(new Vector2(0, 80), 0.3f).SetEase(Ease.OutCubic)); Seq.Append(rt.DOAnchorPos(Vector2.zero, 0.4f).SetEase(Ease.InQuad)); Seq.Play(); Я упростил для вопроса. Но какая разница, я ведь сделал kill() при выходе из сцены. Откуда ошибка? Может быть это вообще не с этим объектом связано? Я хочу понять КАКОЙ объект вызывает ошибку?
Попробуй DOTween.KillAll();
Помогло! Только не могу понять почему помогло? В сцене больше нет объектов с твинами. Почему просто Kill() не помогал?
Видимо ))
а если проверку на null попробовать сделать? Seq?.Kill()
Вопрос уже решён
Обсуждают сегодня