ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Land Of Memories - Loading Image
    유니티 프로젝트/RPG-2D

    이번 글에서는 로딩 이미지 구현을 작업하였습니다.

     

     

    전체 흐름을 관리할 State는 Manager 스크립트에 추가하였습니다.

     

    초기 상태는 Loading 상태이며, 

     

    UI 오브젝트가 꺼질 때 State = Playing으로 변환됩니다.

     


     

    다음은 로딩 이미지입니다.

     

    BackGround 이미지와 그 하위에

     

    캐릭터 이미지, 텍스트, 그리고 애니메이션 이미지를 넣어 주었습니다.

     

    애니메이션 이미지는 애니메이션 클립을 하나 생성하여 시작 시 'Loading'이 실행되게 해 주었습니다.

     

     


    다음 작업은 LoadingController 스크립트를 생성하였는데

     

    time 변수를 선언하여서 오브젝트가 활성화될 때 실행될

    OnEnable() 함수에서 인보크를 실행시켜 주었고

     

    오브젝트가 비활성화될 때 실행될 이벤트 함수인 OnDisable() 함수에서

    Manager의 State를 Playing으로 변경시켜 주었습니다.

     


     

    동작 구현은 이상이 없지만, 몇 가지 예외처리를 할 부분이 있었습니다.

     

    로딩 중일 땐, 플레이어가 움직임이나 공격 등 어떠한 상호작용도 이루어지면 안 되게 하는 것이었습니다.

     

    1. PlayerMovement

     

    다음과 같이 매니저의 상태가 Loading이면 return을 해주었습니다.

     

    2. PlayerAttack

     

    기존 Space 키를 누르면 시작될 공격에 조건문을 추가해 주었습니다.

     

    Manager의 State가 Loading이 아닐 때 시작 되게 해 주었는데,

     

    초기에는 

     

    Manager.instance.currentState == Manager.State.Playing

     

    과 같이 구현을 했다가, State 값이 더 늘어날 수도 있다는 것을 생각하여 Loading이 아닐 때로 변경하였습니다.

     


     

     


    크게 어려운 점은 없었던 작업인데.

     

    (심플해 보이면서 과하지 않는 UI를 구성하기 위해 이것저것 갖고 있는 Sprite로 애니메이션을 만들고 확인해 보는 데에 시간이 야아아아아악간? 들었습니다)

     

    이 몬스터가 움직이는 함수 구현에서 Print("111") 이 계속 찍히는

     

    즉, 장애물이 있다고 판단되는 오류가 있었습니다.

     

    결과적으로는 

     

     

    장애물을 검사하는 obstacleLayer가 인스펙터 창에서 초기화되어 있던 문제였고 

     

    항상 결과를 true로 반환하였던 것입니다.

     

     

    아마 몬스터를 프리팹화 할 때 문제가 생긴 것 같은데...

     

    잔실수를 줄이자 효 겸 아

     


     

    감사합니다.

    댓글

김효겸 / Tel. 010-7735-0580 / E-mail. dollzzang2@hanmail.net