public async UniTask Exit(bool saved) { ResetAnimation(); await UnityUtils.Animate(.5f, _curve, t => { _mask.alpha = 1f - t; float lastAngle = saved ? _lastAngle : -_lastAngle; _root.SetLocalEulerAngles(z: Mathf.Lerp(0, lastAngle, t)); float lastOffset = saved ? _lastOffset : -_lastOffset; _root.SetAnchoredPosition(x: Mathf.Lerp(0, lastOffset, t)); }); }
public async UniTask Enter(IPersonEntry entry) { ResetAnimation(); _thumbnailImage.SetTexture(entry.Thumbnail); _nameText.text = $"{entry.Name}, {entry.Age}"; _descriptionText.text = entry.Description; await UnityUtils.Animate(.5f, _curve, t => { _mask.alpha = t; float initialDepth = _initialDepth / _root.lossyScale.z; _root.SetAnchoredPosition(z: Mathf.Lerp(initialDepth, 0f, t)); }); }
async UniTask Fade(bool show) { if (show) { gameObject.SetActive(true); } await UnityUtils.Animate(0.5f, AnimationCurve.EaseInOut(0, 0, 1, 1), t => { _group.alpha = show ? t : 1 - t; }); if (!show) { gameObject.SetActive(false); _mediaPlayer.Stop(); } }