TIL

2024 12 10 TIL

noc777 2024. 12. 10. 12:19
private void SetIcon(Texture2D texture) 
    {
        if (icon != null && texture != null) 
        {
            icon.texture = texture; 
            icon.enabled = true; 
        }
        else //else문에서 icon이 null인 경우를 예외처리해주지 못함
        {
            icon.texture = null; //오류가 발생한 지점 icon이 null 인 상태에서 조작해주려함
            icon.enabled = false; 
        }
    }

코드 분석후 오류 사항을 확인하니 icon이 null 일 때 옵션을 조정하려하였기에 발생하는 오류였다.

또한 해당 코드의 예외처리에서 else 문에 icon이 null인경우를 포함하지 않기에 수정하였다.

 

또한 icon을 로우이미지로 처리하고 있는 데 특수한 상황이 아니라면

이미지의 스프라이트로 사용하는 것이 좋다고하여 수정을 거쳤다.

private void SetIcon(Sprite sprite)
{
    if(icon == null) return; //icon이 비어있을 경우엔 작동하지 않도록

    if (sprite != null)
    {
        icon.sprite = sprite;
        icon.enabled = true;
    }
    else
    {
        icon.sprite = null;
        icon.enabled = false;
    }
}

이외에 이미지를 활성화 비활성화 하는 이유는 잘 모르겠으나 

아이템이 들어간 경우나 비어있는 경우 인벤토리 칸이 따로 표시되지 않기에 

PlaceholerImage 라는 하얀 배경 이미지를 깔아주었다.

 

 

 

 

 

최종적으로 팀원 한분의 중도하차 확정소식을 받았다.

담당 튜터님께서 중간 점검 겸 다시 프로젝트 진행을 살펴보았을 때 

매니저를 통해 뼈대가 잡혀있지 않아 전체적으로 하드 코딩이 되어있다고 하셨다.

기능을 만들어 가면서 필요한 경우 매니저를 생성하는 식으로 진행하고 있었는데 

방향성이 잘못되어 있었던 것이다.  

사실 매니저에 대해 제대로 만들게 된 것은

처음이라 어떤 요소를 만들어야할지도 감이 안잡혔던 것 같다.

 

현재 필요한 매니저 요소로는 리소스 매니저, UI 매니저, 데이터 매니저 등을 말해주셨고 

동적생성을 담당하는 리소스 매니저에 대한 역할을 이해하기 위해 

특강을 다시 정독하는 시간을 가지고 있다. 

 

이번주의 목표는 매니저를 만들고 검토받으면서

리팩토링하는 과정을 해야할 것 같다.

 

 

스프라이트 아틀라스 Sprite Atlas

 

여러개의 스프라이트를 하나의 큰 텍스처에 패킹하여 사용하는 방식

 

장점 : 용량을 적게 소요한다.  메모리를 적게 사용한다.

 

스프라이트 아틀라스를 생성할 때 2의 배수의 크기를 유지하면 같은 크기의 

분할된 스프라이트와 용량과 최적화에서 많은 차이가 발생한다.

 

유니티에서 텍스처와 스프라이트의 크기를  2의 배수로 사용하는 이유

 

유니티에서는 텍스처와 스프라이트 최적화를 위해 2의 배수(예 : 256x256,512x512,1024x104)

의 크기를 사용하는 것을 권장한다. 

 

이는 GPU가 2의 배수 크기를 가진 텍스쳐를 처리할 때 더 효율적으로 처리가 가능하기 때문이다.

또한 텍스처를 압축할 때도 2의 배수 크기를 가질 때 더 효율적이고

텍스처를 매핑할 때도 2의 배수의 크기일 때 정확도가 높아진다.

 

따라서 이미지를 사용할 때 큰 배경이미지 같은 경우는 아틀라스를 사용하지 않더라도 2의 배수의

크기로 조절하고 작은 이미지들을 패킹하여 아틀라스를 만들 때 사이즈를 2의 배수로 설정해주어야 한다.

 

버튼 같은 경우 스크립트를 버튼 UI마다 붙여주는 것이 아닌 

한 스크립트 내에서 기능들을 관리하도록 하듯 

협업의 관점에서 알기 쉽게 설계하여야한다.

 

'TIL' 카테고리의 다른 글

2024 12 12 TIL  (1) 2024.12.12
2024 12 11 TIL  (0) 2024.12.11
2024 12 09 TIL  (0) 2024.12.09
2024 12 06 TIL  (0) 2024.12.06
2024 12 05 TIL  (0) 2024.12.05