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