[Unity 기능] 9-Slicing Sprite 제작

2024. 12. 7. 18:59·유니티(Unity)/콘텐츠 개발

📌 개요

 

 

게임을 개발하다보면 하나의 UI을 늘리거나 줄여서 재활용하고 싶은 경우가 있습니다.

 

하지만 늘리거나 줄이면 위처럼 텍스처가 깨지기 마련입니다.

 

그래서 각 비율에 맞는 UI을 새로 제작하여 추가하는 방법을 사용합니다.

 

 

 

 

하지만 이 방법을 사용하면 다음과 같은 문제가 발생합니다.

  • 비율에 따라 새로운 리소스를 제작하기 때문에 인건 비용 추가 발생
  • 새로운 리소스로 인한 용량 비용 증가
  • 다른 비율에 대한 확장성 제한

 

 

흐음... 하나의 UI 텍스처로 다른 비율의 UI을 마구마구 뽑아낼 순 없는걸까요?

 

 

 

 

하지만 우리 킹갓제너럴 유니티는 이미 해결책을 보유하고 있었다는 것!

 

바로 '9 슬라이싱 스프라이트' 입니다!!

 

 

 


📌 9-Slicing Sprite 란?

 

 

9-Slicing Sprite : 다양한 크기의 이미지를 재사용할 수 있게 해주는 슬라이싱 기법

 

하나의 이미지를 9개의 영역으로 나눕니다.

 

이때, 확장 또는 축소시 각 영역은 다음과 같이 작동합니다.

  • A, C, G, I 영역 : 크기가 변하지 않음
  • B, H 영역 : 수평에 대해서만 크기 변경
  • D, F 영역 : 수직에 대해서만 크기 변경
  • E 영역 : 수평과 수직에 대해서 크기 변경

그렇다면 유니티로 어떻게 구현할 수 있을까요?

 

 

 


📌 9-Slicing Sprite 구현 방법

 

 

Texture Type은 [ Sprite (2D and UI) ] 으로 설정합니다.

 

① Sprite Mode을 Single로 설정합니다.

② Mesh Type을 Full Rect로 설정합니다.

③ Filter Mode을 Point (no filter)로 설정합니다.

④ Compression을 None으로 설정합니다.

⑤ [ Apply ] 버튼을 눌러 적용합니다.

⑥ [ Open Sprite Editor ] 을 클릭하여 스프라이트 에디터를 엽니다.

 

 

 

 

스프라이트 에디터를 열었다면 다음 작업을 수행합니다.

 

① 9개의 영역을 나눠줍니다. (텍스처에 따라 어떻게 나눌지 판단)

② 영역 나누기를 완료했다면 [ Apply ] 을 눌러서 저장합니다.

 

이러면 텍스처 설정은 완료입니다!

 

 

 

이제 9-Slicing Sprite을 설정해보도록 하겠습니다.

 

Image Type을 [ Sliced ] 으로 설정해줍니다.

 

이제 결과를 확인해볼까요?

 

 

 

 

 

(화질구지지만...) 잘 적용되었군요!

 

아, 그리고 9-Slicing Sprite으로 타일링(Tiling)도 가능한데요!

 

이부분은 아래 유니티 메뉴얼을 참고하시면 됩니다.

 

https://docs.unity3d.com/kr/2020.3/Manual/9SliceSprites.html

 

9슬라이싱 스프라이트 - Unity 매뉴얼

9슬라이싱(9-slicing)은 여러 에셋을 준비할 필요 없이 다양한 크기의 이미지를 재사용할 수 있게 해주는 2D 기술입니다. 이미지를 9개 부분으로 슬라이싱하여 스프라이트의 크기를 재조정할 때 스

docs.unity3d.com

 

 

 

'유니티(Unity) > 콘텐츠 개발' 카테고리의 다른 글

[Unity 기능] 2D Endless Platform 구현 (2편)  (1) 2025.01.02
[Unity 기능] 2D Endless Platform 구현 (1편)  (2) 2025.01.01
[Unity 기능] 컴파일 시점 제어하기  (1) 2024.12.25
[Unity 기능] Sprite Atlas에 대하여  (1) 2024.12.15
[기능] GetComponent 최적화 (CachedMonobehaviour.cs)  (1) 2024.11.11
'유니티(Unity)/콘텐츠 개발' 카테고리의 다른 글
  • [Unity 기능] 2D Endless Platform 구현 (1편)
  • [Unity 기능] 컴파일 시점 제어하기
  • [Unity 기능] Sprite Atlas에 대하여
  • [기능] GetComponent 최적화 (CachedMonobehaviour.cs)
천냥 컴퍼니
천냥 컴퍼니
안녕하세요, 게임 개발자 천냥입니다! 게임을 제작하는 개발자들에게 도움이 될만한 정보와 지식을 제공하는 블로그입니다 ;)
  • 천냥 컴퍼니
    천냥의 게임 개발 일지
    천냥 컴퍼니
  • 전체
    오늘
    어제
    • 분류 전체보기 (95) N
      • 유니티(Unity) (64) N
        • 콘텐츠 개발 (7)
        • 툴 개발 (15) N
        • 이슈 도감 (10)
        • 최적화 기법 (4)
        • 쉐이더 (3)
        • 포톤 (0)
        • 이론 정리 (15)
        • 유용한 패키지 정리 (3)
        • 패키지: Cinemachine 정리 (7)
      • C# (2)
      • IT (29)
        • 기술 정리 (2)
        • 알고리즘 (26)
        • Git (1)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    커스텀 패키지
    upm 개발
    티스토리챌린지
    최적화
    시네머신
    오블완
    Cinemachine
    Shader
    가상머신
    쉐이더
    C++
    custom package
    verdaccio
    코테
    upm
    코딩 테스트
    editor
    유니티
    addressable
    Unity
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.2
천냥 컴퍼니
[Unity 기능] 9-Slicing Sprite 제작
상단으로

티스토리툴바