게임을 만들다 보면 움직이는 선이 필요할 경우가 있습니다. 이런 상황처럼 말이죠.
가장 먼저 이 SOS라인을 만들 패턴을 만들어야겠죠. 이와 같은 SOS라인들을 만들었습니다.
다음에는 line을 만들어야겠죠. Effect → Line으로 Line오브젝트를 하나 만들고 적당한 길이로 늘입니다. Line이란 것은 나중에 필요할때 시작점과 끝점을 지정해야 하므로 여기서는 아무렇게나 늘여도 됩니다.
이것은 텅 빈 매터리얼이죠. 여기에 우리가 필요한 패턴을 넣도록 해 봅시다. Shared를 Standard로 한 상태에서 아까 만들었던 패턴들 중 하나를 Albedo 옆의 칸에 집어넣습니다.
다음에는 Shader를 Sprite→Default로 바꿔줍니다.
이로써 라인에 적용할 매터리얼이 완성되었습니다. 이제 이 매터리얼을 라인에 적용해야겠죠.
방금 만든 매터리얼을 라인의 Material에 끌어다 놓고 TextureMode를 Tile로 바꿉니다. 그러면 보다시피 단 하나의 패턴만 보이죠. 이것을 수정하기 위해 1)에서 만들었던 패턴의 속성을 바꿔야 합니다. 물론 6개 모두 바꿔야 하므로 이들 전체를 선택하고 WarpMode를 Repeat로 바꾸면 그림과 같이 패턴이 반복되어 나타나게 되죠.
이 라인에 새로운 스크립트 Animate.cs를 만들어 붙입니다.
이 스크립트에서 필요한 것은, 라인을 조작할 LineRenderer와 라인을 움직이게 할 패턴입니다. 이들을 위한 변수를 만들고
라인 인스펙터에서 sosPattern에 필요한 패턴들을 끌어다 넣습니다.
다음과 같이 일정시간마다 lineRendr의 texture에 각 패턴을 차례로 집어넣으면
// Update is called once per frame
void Update()
{
if((nextFrame -= Time.deltaTime) < 0)
{
if(++frame >= sosPattern.Length)
frame = 0;
lineRendr.material.SetTexture("_MainTex", sosPattern[frame]);
nextFrame = 0.3F;
}
}
이런 움직이는 라인이 완성됩니다.
이 라인을 prefab으로 만들어 필요할 때마다 instantiate로 로드해서 사용하면 끝