ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • RPG 듀토리얼 04. RenderTexture & stat
    유니티 프로젝트/RPG 듀토리얼

    Info & Bag

    안녕하세요!

     

    이번엔 캐릭터를 클릭/터치 시 활성화되어 켜지는 Info창 과 Bag 창을 같이 보시겠습니다.

     

    이번 장은 제가 생각했을땐 코드적인 설명보다는

    UI항목에 대한 부분이 많을 것 같습니다.

     

    코드적인 설명이 별로 없을 것 같아 그냥 넘어가자니 애매하고.

    또 그렇다고 그냥 작성하자니 애매하고..


    우선 보시면 캐릭터 Info창에 Player의 화면도 보이고

    Player의 Stat도 보입니다.

    Bag 창에는 아이템 칸도 보이고 골드 창도 보입니다.

     

    Info창과 Bag창을 개별적으로 나눈 이유는. Bag창은 나중에 상점을 이용할 때

    재 활용하기 위해서입니다.

     

    텍스트 들은 모두 TextMeshPro를 사용하였습니다.

     

    우선 캐릭터 Info창부터 보겠습니다.

    Info창을 관리하기 위해서 

     

    Panel을 만들어 목록들을 관리하였습니다.

     

    RPG 듀토리얼 03에서 기억나실진 모르겠지만..!

     Manager.instance.managerInven.charInfoFrame.SetActive(true) 이 부분이

    hierarchy에 있는 CharInfoFrame을 SetActive로 활성화시켜주는 동작입니다.


    chatInfoFrame

    텍스트는 TextMeshProUGUI를 사용하였습니다.

     

    특이점이 있다면 Info창에 캐릭터 화면이 보이는 것인데요

     

    스프라이트를 넣는 Image 말고 텍스처를 넣을 수 있는 Raw Image를 생성하여 

     

    Render Texture를 이용했습니다.

     

     

    이후 생성된 Render Texture는 생성된 Raw Image에 넣고

     

    플레이어를 보여줄 캠을 생성하여 Target Texture를 넣어 주었습니다.

     


    Manager.instance.managerInven.OpenBag() 코드의 OpenBag 함수를 보겠습니다.

    SetActive를 true로 바꿔주어 활성화시켜주는 모습입니다.

     

    둘 다 같은 기능을 동작하는 코드이지만

     

    BagFrame은 상점에서 따로 활성화를 시켜줄 것이기에 스크립트를 나눠서 구현했습니다.

     


    또한 플레이어에게 스텟을 입혀 주었고 

    public으로 선언하여 인스펙터 창에서 조정이 가능하게 구현하였습니다.

     

    이후. 시각적으로 보이는 Text로 스텟 창을 만들어 주고

     

    player의 스텟을 텍스트로 연결시켜 동기화를 시켜줬습니다.

     

     

    매 활성화 시 실행되는 OnEnable 함수에서 작성되었으며

     

    Info창과 bag이 활성화되게 해 주는 곳은

     

    PlayerController에 있는 OnPointerDown 함수에서 실행됩니다.

     

    즉 터치 / 클릭 한 태그가 "Player" 일 시

     

    원하는 동작 구현이 실행됩니다.

     

    반대로 이 창을 비활성화되게 해 주는 것은 

     

    Panel을 터치 시 비활성화 되게 구현하였으며

     

    Event Trigger를 추가하여 Pointer Down을 이용하였습니다.


    Panel에 추가된 Event Trigger의 Pointer Down으로

    Info & Bag 창이 SetActive = false로 비활성화되는 모습입니다.

     

    또한 터치 / 클릭 시 사운드도 함께 재생되게 했습니다.


     

    스텟 동기화 모습

     

    댓글

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