Unity/2D(Android) Study

Unity(유니티) - Sort Order

ITPangPang 2017. 2. 25. 11:13




Unity(유니티)

Sort Order






3D부터 조금씩 공부할때는

몰랐는데,


2D쪽 공부를 하다보니

Object(Layer)의 Sort(Order)가 굉장히

중요하다고 깨닫는 중입니다.


3D할때는 그냥 Z축 위주로

변경하면 어느정도 해결이 됬는데


2D는 이리저리 

조건과 방법을 따질게 많은 것

같습니다.

(Z축, Canvas간, Canvas내에 자식들,

Tags&Layers에서 설정 등등)



Canvas 안에서의 정렬


먼저 Canvas 안에서는

어떻게 작용하는지 알아보기 위해


Canvas를 하나 만들고

그 자식들로 Button과 Image를

하나 넣어보면



[Button] -> [Image]

Button먼저 생성 후 Image를

놓게 되면



이렇게 이미지만 보이게 됩니다.

먼저 생성했던 버튼이 존재하고

그 위에 이미지가 덮히게 됩니다.


이미지 위에 버튼을 놓고 싶다면

아래와 같이 순서를 바꿔줍니다.



Image를 위로 올려서

아래로 깔리게 한 후에

그 위에 버튼을 올리면 됩니다.


변경을 하면


이렇게 이미지 위에 버튼이 올라가게 됩니다.



Canvas간 정렬


테스트를 위하여

Canvas를 2개 생성해봅니다.



하나의 Canvas에는

Button


하나의 Canvas에는

Image를 넣어봅니다


결과를 보면


이번에는

[Hierarchy]

에서 버튼이 더 위에 있는데

아래에 깔리지 않고

위로 가네요


한번 순서를 바꿔봅니다.


결과를 보면


그래도 결과는 변하지 않습니다.


Canvas간에는 다른 방법으로

정렬을 해줘야 합니다.


Canvas를 선택 한 후에

우측 [Inspector]를 보게 되면



중간쯤에 있는

Sort Order을 봅니다.


여기서 정렬순서를 정해주시면 됩니다


숫자가 낮을수록 바닥에 깔겠다는 의미입니다.

버튼(캔버스)을 0번에 놓고

이미지(캔버스)를 1번에 놓으면


이미지가 버튼 위에 놓이게 됩니다.


꼭 0부터 시작할 필요는 없습니다.

이미지(캔버스)의 Sort Order을 1로 놓고

버튼(캔버스)의 Sort Order을 99로 놓게되면


이미지(1)가 버튼(99)보다 숫자가 낮게되므로

아래에 깔리게 됩니다.




이 부분이 2D게임을 만들때

가장 기본적이면서도 중요한 부분입니다.


그 뒤로

코드와 Tag&Layer에서

좀 더 구체적으로 정해야겠지만요..