ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 내일배움캠프 47일차 TIL - 유니티 심화 주차 팀 프로젝트 3
    TIL/Unity 2024. 6. 21. 21:26

     

    [한 줄 요약]

    심화 주차 팀 프로젝트를 진행하면서 오전에 스크럼을 진행하고, 스테이지 구현 작업에 들어갔다.


    [학습 내용]

     

    심화 주차 팀 프로젝트


    스크럼

    작업물 병합

    오전에 각 팀원들의 작업물들을 메인씬에 합치는 작업을 진행했다.

    메인씬

     

    변경사항

    기존에는 해상도를 1080 * 2340 (FHD+)로 진행하려고 하였으나, 튜터님의 조언에 따라 이 해상도가 아직 보편적이지 않다고 판단되어 1080 * 1920 (FHD)로 진행하기로 하였다.

     

     

    스테이지 시스템

    스테이지 시스템 추가

    싱글톤 디자인인 게임 매니저가 스테이지 시스템을 가지고 있게 디자인하였다. 스테이지 시스템은 스테이지 데이터를 가지고 있으며, 스테이지 데이터에는 스테이지 정보와 플레이어, 몬스터의 스탯 정보 등이 담겨있다.

    게임이 시작하면 스테이지 시스템은 스테이지 정보에 맞는 몬스터를 스폰한다.

     

    스테이지 클리어

    스폰된 몬스터가 플레이어 캐릭터와 전투를 벌이다가 쓰러지면 게임 매니저 - 스테이지 시스템을 거쳐 스테이지 클리어 이벤트를 호출한다. 이 이벤트에는 다음 스테이지로 넘어가기 위한 메서드들이 등록되어있다.

    코루틴을 이용하여 2초(추후 변경 가능) 동안 "Victory" 문구를 출력하고 이후 스테이지 변경 작업이 실행된다.

    임시 개발 모습

     

     

    유니티/코딩 팁 특강


    알아두면 유용한 것들

    Prefab Varient

    프리펩을 하나 만들고 약간의 수정을 거쳐 배리언트를 만들면 편리하다. 원본 프리펩을 수정할 경우 배리언트들에도 수정사항이 모두 반영된다.

     

    Animation Override Controller

    다른 애니메이션 컨트롤러를 상속시키면 그 애니메이터 설정이 그대로 따라온다. 그래서 여기에서 애니메이션 내용만 바꿔주면 편리하다.

     

    유니티는 단일 스레드인가?

    엔진 자체 : 멀티 스레드

    개발자가 접근해서 개발하는 부분 : 단일 스레드

    잡 시스템 : 멀티 스레드

     

    접근할 수 없는 다른 메소드에 접근하는 법

    targetComponent.SendMessage("MethodName")으로 가능하다. 하지만 성능, 디버그 등의 이슈로 권장되지 않는다. 

     

    사용하지 않는 Update문은 지워라

    내용이 비어있어도 지속적으로 호출이 되기 때문에 성능 저하가 심하다.

     

    캔버스는 적당히 나누자

    캔버스는 요소들이 변경될 때 새로 그려진다. 이 때 캔버스 내의 모든 요소들이 다시 그려지기 때문에, 적당히 여러 캔버스에 분배하면 불필요한 작업을 줄일 수 있다.

     

     

     


    [회고]

    그래도 오늘은 할 게 생겨서 잘 진행했다. 조금은 속도가 안 났는데 주말에 조금 더 진행해서 플레이어 패배, 몬스터의 스테이지에 맞는 스탯을 적용하는 작업을 진행해 봐야겠다.