public void Enter(IReadOnlyList <bool> draftsSelectable, bool unlocking) { gameObject.SetActive(true); focusManager.OnEnter(); goToConfig.gameObject.SetActive(true); goToRankings.gameObject.SetActive(true); ApplySelectableDrafts(draftsSelectable); if (unlocking) { if (!draftsSelectable[2]) { if (draftsSelectable[1]) { UnlockDraft(draft2.GetComponent <Image>(), draft2Light, draft2Black); } else { print("実際には通らない"); } } else { UnlockDraft(draft3.GetComponent <Image>(), draft3Light, draft3Black); } } FadeIn(); focusManager.OnEnter(); }
void FadeIn() { const float targetAlpha = 0.8f; const float fadeInDuration = 0.3f; IEnumerable <Image> stageImages = AllStages.Select(stage => stage.GetComponent <Image>()); Image goToRanksImage = goToRankings.GetComponent <Image>(); Image goToConfigImage = goToConfig.GetComponent <Image>(); // 初期位置に { AllStages .Select(node => node.GetComponent <Image>()) .Concat(new Image[] { chooseADraftImage }) .ForEach(img => { img.transform.SetLocalX(100); img.DOFade(0, 0); }); goToRanksImage.transform.SetLocalX(-50); goToRanksImage.DOFade(0, 0); goToConfigImage.transform.SetLocalX(270); goToConfigImage.DOFade(0, 0); waku.FadeOut(0, Ease.Linear); } // ステージのフェードイン stageImages.ForEach((stageImage, i) => { const float slideGap = 0.067f; DOTween.Sequence() .AppendInterval(i * slideGap) .Append(stageImage.DOFade(targetAlpha, fadeInDuration).SetEase(Ease.Linear)) .Join(stageImage.transform.DOLocalMoveX(0, fadeInDuration).SetEase(Ease.OutCubic)); }); // ランキング、設定 DOTween.Sequence() .AppendInterval(0.3f) .Append(goToConfigImage.DOFade(targetAlpha, fadeInDuration).SetEase(Ease.Linear)) .Join(goToConfigImage.transform.DOLocalMoveX(-100, fadeInDuration).SetRelative().SetEase(Ease.OutCubic)) .Join(goToRanksImage.DOFade(targetAlpha, fadeInDuration).SetEase(Ease.Linear)) .Join(goToRanksImage.transform.DOLocalMoveX(-100, fadeInDuration).SetRelative().SetEase(Ease.OutCubic)); // その他 DOTween.Sequence() .AppendInterval(0.5f) .Append(chooseADraftImage.DOFade(1, fadeInDuration).SetEase(Ease.Linear)) .Join(chooseADraftImage.transform.DOLocalMoveX(0, fadeInDuration).SetEase(Ease.OutCubic)) .AppendCallback(() => waku.Transform.position = focusManager.Focused.transform.position) .Append(waku.WakuImage.DOFade(1, 0.2f).SetEase(Ease.Linear)) .AppendCallback(() => { state = State.Active; waku.Start_(); }); }