protected void ProcessSetStatus(bool status) { _lastStatusScene = false; if (_fadeTween == null) { _fadeTween = new TweenFloat(0, 1, _transitionLength, EasingTypes.SinusoidalInOut, true); _fadeTween.Init(); } _canvasgroup.interactable = status; _canvasgroup.blocksRaycasts = status; _fadeTween.Restart(_canvasgroup.alpha, status ? 1 : 0); _fadeTween.Play((f => _canvasgroup.alpha = f), null); Status = status; OnStatusChanged(status); }