본문 바로가기

무제_LR

Indicator 보강

 

Indicator에 조작 가이드 UI를 추가했습니다.

좌(WASD)는 붉은 색으로,

우(상하좌우)는 초록색으로 보여주도록 디자인했습니다.

 

특별히 새로 만든 스크립트는 없었으며

  public partial interface IUIIndicatorPresenter
  {
    public enum LeftGuideType
    {
      Movable,
      Clamped,
    }

    public void SetLeftGuide(Direction direction, LeftGuideType guideType);

    public void SetLeftGuide(Dictionary<Direction, LeftGuideType> guideSets);

    public void SetLeftGuide(Navigation navigation);
  }
//좌,우별로 새로 파일 만들어서 partial로 interface 확장
  public partial interface IUIIndicatorPresenter
  {
    public void SetRightGuide(params Direction[] directions);
  }

구현 메소드는 약간 복잡한지라 굳이 올리지는 않았으나

Direction을 받아서 Image의 Alpha를 수정한다던가 UniTask로 깜빡이게 하는 등 원시적인 로직입니다.

 

그나저나 해당 기능을 만들면서 하도 오류가 자주 발생해서 골머리를 썩였는데,

씬을 A->B로 변경하는 동안 라이프사이클이 생각했던 거랑 약간 다르게 돌아가더라구요.

제가 알기로는 A->B 씬 전환 호출 -> A 씬의 오브젝트들 OnDestroy -> A의 오브젝트들 파괴 -> B 씬 전환 및 B 오브젝트들의 Awake 실행

이렇게 흘러가야 할텐데 로그를 찍어보니

A->B 씬 전환 호출 -> B 오브젝트들 Awake 호출 -> A 신의 오브젝트들 OnDestroy -> A의 오브젝트들 파괴(추정)

로그가 요래 나오더랍니다.

씬 모드도 Single로 설정했는데 어째 요래 되는지가 참 의문스러웠습니다.