TIL

25.03.25 TIL

gaon99 2025. 3. 25. 21:17

1. 오늘 학습 키워드

 

팝업 매니저 및 최적화 강의


2. 오늘 학습 한 내용을 나만의 언어로 정리하기

 

간단히 들었던 특강에 대해서 정리를 하고 오늘 제작한 부분을 남기려고한다.

 

우선 오늘은 2D 최적화에 대해서 알려주셨는데, 

최적화란 무엇인가에 대해서부터 말하자면,

정의론 허용된 자원의 한계 내에서 주어진 요구 사항을 만족시키며 최선의 결과를 얻는 과정이라고 나와있다.

나는 Unity라는 게임 개발에서 최적화는 필요하지 않거나 사용하지 않는 자원을 지워서 최대한의 이득을 얻는 것이라고 생각한다.

 

그리고 튜터님은 최적화의 핵심은 카메라를 사용하지 않는 부분에서는 카메라를 끄는 것 이라고 하셨다.

 

크게 코드와 렌더링을 통해 최적화를 할 수 있는데.

 

렌더링 같은 경우, 게임에 따라 프레임을 제한하는 것을 추천해주셨다.

 

FPS라던가 프레임이 중요한 게임 같은 경우는 프레임을 최대로 설정 하는것이 맞지만,

 

이때까지 제작한 게임 같은 경우는 프레임을 Application.targetFrameRate를 사용하여, 적정 프레임을 정해주는 것으로 최적화 한다고 하셨다.

그리고 아틀라스나, 이미지의 크기를 줄이거나 POT(Power of Two)라고 2의 거듭제곱으로 이미지의 크기를 설정해주는 것이라고 한다.

GPU가 보통 2의 거듭제곱의 크기로 블록을 저장하는데, NPOT 즉 POT가 아닌 이미지는 강제로 POT 크기로 변환되거나, 패딩이 추가되는 등 메모리 사용량이 더 많아질 가능성이 있기에, POT 이미지를 사용하는 것이 좋다고 하셨다.

 

그리고 UI를 업데이트 할 때, 캔버스 안에 캔버스를 넣어서, 캔버스 전체를 다시 그리는 것이 아니라 업데이트에 관한 내용만 상속을 받아

업데이트 캔버스만 다시 그리는 방법도 알려주셨다.

 

그리고 코드 부분은 Profiler를 사용해서 메서드에 사용하는 메모리 사용량? 을 볼 수 있기에, 이 부분을 사용하면 좋다고 하셨다.

이때 코루틴을 사용하면 메모리 사용량이 많기에, Unitask 나 UniRX을 알려주셨고, 다음 시간에 사용 방법에 대해서 강의를 해주신다고 하셨다.

 

그리고 코드 부분에서는 최적화에 핵심 부분은 2개인데, 하나는 생명 주기이고, 하나는 기억이 나질 않아 추후 특강을 다시 보고 추가하겠다.

 

생명 주기 부분에서는 Update() 구문은 프레임 단위로 Update가 이뤄지기에, 나는 UpdateUI 메서드를 항상 Update에 넣었는데

변동이 심하지 않는 부분이라면 변화할 때만 UI를 업데이트 해주는 방법이 최적화하기 좋은 것 같다.

 

팝업 매니저 같은 경우, 처음에는 액션을 사용하려고 했는데, 내가 작업하는 부분이 간단한 팝업이기에, 그냥 switch구문 써서 제작했다.

public void ShowPopup(PopupType type)
{
    switch (type)
    {
        case PopupType.EmptyRegiInput: popupText.text = "정보를 확인해주세요"; break;
        case PopupType.EmptyTransInput: popupText.text = "입력 정보를 확인해주세요"; break;
        case PopupType.InsufficientBalance: popupText.text = "잔액이 부족합니다"; break;
        case PopupType.InvalidUserId: popupText.text = "대상이 없습니다."; break;
        case PopupType.SelfTransfer : popupText.text = "본인에겐 송금할 수 없습니다"; break;
    }
    popup.SetActive(true);
}

 

그리고 해당 팝업이 필요한 부분에 PopupManager.instance.ShowPopup(Type)으로 작성해서 팝업 오브젝트를 관리해줬다.


3. 학습하며 겪었던 문제점 & 에러

 

팝업 제작하면서의 문제는 딱히 없었다.


4. 내일 학습 할 것은 무엇인지

json 암호화 및 복호화를 해 볼 예정이다.

'TIL' 카테고리의 다른 글

25.03.27 TIL  (0) 2025.03.28
25.03.26 TIL  (0) 2025.03.28
25.03.24 TIL  (0) 2025.03.24
25.03.21 TIL  (0) 2025.03.24
25.03.20 TIL  (0) 2025.03.20