본문 바로가기
프로그래밍/유니티

[Unity] Line Renderer 스프라이트 타일식 배치하기 + a

by 김시루시루르 2021. 8. 26.

이걸 뭐라고 제목을 쓰지 일단 쓰긴 썼는데 ...

 

서론 요약 :

보통 라인 렌더러에 소스가 되는 마테리얼을 넣으면

라인 길이가 길어졌을 때 그 마테리얼이 뭐든간에, 마테리얼을 쫘악 늘려서 렌더링하잖아요

그래서 프로퍼티에 텍스쳐 모드가 있길래 옳다구나 하고 Tile로 바꿔도 .. 뭐야? 안되잖아요

 

그런 당신을 위한 해결법!

레테 개발에서 쓴 방법입니다. 이것저것 얘기합니다.


레테를 해보신 분들은 아시겠지만 (이참에 함 해주세요)(틈새 전단지 돌림)

인게임에서 레테가 큐브들을 연결할 때, 즉 플레이어가 큐브를 드래그 할 때마다 쇠사슬이 나타납니다.

이게 바로 라인 렌더러를 쓴 것인데요!

이건 사실 스프라이트로 되어있는 사슬 한 조각의 이미지를 여러번 나타나게 조절한 것입니다.

리소스는 이것

이걸 했던 방법.... 의 정리입니다.


0. 마테리얼, 라인 렌더러 작성

이거 하시는분들.. 웬만하면 유니티 아시겠지? 기초적인 설명은 대충 말로만 하고 이미지는 생략하겠어요

 

그래도 준비부터 하자면...

라인렌더러는 스트라이프를 안 받습니다. 이 친구 분류가 Effects 거든요.

그럼 뭘 받느냐 하면, 마테리얼을 받습니다. 하나 만들어서 준비합니다.

마테리얼의 Albedo에 원하는 스프라이트를 넣어줍니다.

 

라인 렌더러는 GameObject → Effects → Line 으로 생성할 수 있습니다.

하이러키 바닥에서도 같은 경로에 있습니다. (이펙트 - 라인)

 

그러나 .. 라인렌더러의 마테리얼에 스프라이트를 슉 넣어서 주면 이런 괴상한 라인이 탄생합니다.


1. 마테리얼 설정

이 스프라이트는 배경이 투명합니다. 게임에서도 그래야 합니다. 그런데 그렇지 않죠.

이것과 타일식 배치를 동시에 잡아내기 위해, 마테리얼을 설정해줍시다.

Transparent (UI/Unlit/Transparent)가 가장 깔끔합니다.

저는 UI/Default로 했는데 Defalut여도 배경 투명화는 잘 됩니다.

UI/Unlit계열이면 사실 뭐든 상관없는것같아요!

단 UI/DefalutETC1은 배경 투명화가 안 되기때문에 제외입니다.

 

UI가 아닌 그냥 Transparent 속성이어도 크게 상관은 없는데,

이 경우 스프라이트에서 투명 부분과 투명 아닌 부분이 닿는 경계선이 깔끔하지 않아요.


2. 라인 렌더러 설정

눈치채셨겠지만, 이제 텍스쳐 모드를 Tile로 바꿔주면 모든 게 끝납니다.


번외. Alignment

왼쪽: Transform Z / 오른쪽: View

Alignment를 설정하면 라인 렌더러의 라인이 어떻게 보일지 조절할 수 있습니다.

 

Z로 설정하면 z값의 영향을 받아서, 시작점과 도착점의 위치에 따라 각도 등이 자연스럽게 조정됩니다.

다만 스프라이트로 마테리얼이 설정되어있을 경우엔 각도에 따라 정말 '납작'해지는 부분도 있어요!! (크흑)

 

View로 설정하면 좌표의 영향 없이 무조건 일관된 모습을 렌더링해서 보여줍니다.

이 경우 각도 등도 변하지 않아 납작하게 보이는 일도 없지만,

주변 환경과 게임 설정에 따라 자연스러움이 조금 떨어질 수도 있습니다.

댓글