일단 이 이미지를 준비함다. 당연히 타일링 되어 있어야 함.
왼쪽 아래가 0,0 인건 알죠.
오른쪽 위가 1,1 인것도 알죠
그럼 먼저 저 중에서 7 이란 글씨만 나오게 하려면
UV에 1/3을 곱해야 할 겁니다.
이케요.
저 Divide는 1/3 입니다.
즉 이제 이 UV는
0,0 에서 0.33333,0.33333 이 되었습니다.
다음은 이동을 시켜야겠네요
일단 가로로만 이동을 시켜보죠
가로로 이동시키려면...
UV중 U에다가만 더해줘야겠네요 0.33333씩 더해주면 되겠죠?
제가 제일 싫어하는 노드방식의 귀찮은 점이 나왔네요
컴포넌트로 나눴다가 어펜드로 합쳐주기 으 극혐.
하여간 U 에다가만 0.3333 을 더해주니 (1/3 이 그나마 좀 더 정확하겠지만 뭐...)
8이 나왔습니다. 여기에 이제 0.66666을 더해주면 9가 나오겠죠
그럼 이제
0,
0.333333,
0.666666
이 순서대로 번갈아 나오게만 하면 됩니다.
그건.. 역시 만만한건 '시간' 이죠
솔직히 이거말고 셰이더 내부에서 쓸만한건 없습니다.
일단 시간을 3으로 나눈 나머지값을 구합니다. Fmod가 A 를 B로 나눈 '나머지값' 만 구하는 거거덩요
저는 여기 3을 넣어 놓았으니 ...
다른건 몰라도 어쨌건 나오는 값은
0 ~ 2.99999 사이의 값이 되겠지요. 정확히는 0에서 시작해서 2.99999 로 증가하고 다시 0으로 되는 애니메이션이 될겁니다 3으로 나눈 후 '남은 나머지' 값이니까요. 시간은 계속 증가하고요
이제 Ceil로 정수로 '올림' 을 해주지요
0.1~1 까지는 1이 될테고
1.1~2 까지는 2가 될테고
2.1~2.9999까지는 3이 될테고..
사실 완벽한 0.0일때는 0이 되어 버리므로 곤란합니다만 워낙 짧을테니 걍 넘어가 보죠
(이상하면 고치지 뭐. 간단하게 0.0001 더해주면 되잖아)
하여간 1,2,3 이 번갈아 나오게 만들어 졌습니다.
여기다가 0.3333을 곱해주면 되겠죠
이제 0.33333 , 0.66666, 0.9999 를 더하게 되었습니다.
이렇게 하고 보니까, 좀 문제군요.
작동은 잘 될겁니다만...
0 + 0.33333
0 + 0.66666
0 + 0.99999
요건 7,8,9 순으로 나오는게 아니라
8,9,7 순으로 나오는 거잖아요. 0부터 시작하는게 없어졌잖아!!!!!
뭐 사실 그냥 보기엔 문제가 없습니다만. (789나 897이나..) 좀 더 정확히 나오게 하기 위해서 개선합시다.
그래서 개선했습니다. 올림이 아니라 내림으로 .
이제 1,2,3으로 변하는게 아니라
0,1,2로 변하니까
0.33333 , 0.66666, 0.9999 로 변하는게 아니라
0 , 0.333333 , 0.66666 으로 변합니다.
됐다 이제
이제 제대로 돌아간다뇨
'최소한 가로는' 제대로 돌아갑니다.
이제 정리시간이죠
'지금은 3개밖에 안되지만 가로가 몇 개인지 입력하면 그대로 돌아가는 시스템' 을 만들어 보세요
(난데없이 숙제)
뭐 이케 만들면 됩니다. 개쉽죠
===============================================================
이제 어려운건 세로죠 세로
세로도 뭐 기본은 같습니다만...
이렇게 생각해보죠.
0 일때는 UV가 (0.0 , 0.0)이 되고
1 일때는 UV가 (0.3 , 0.0)이 되고 (귀찮으니까 0.3333은 더이상 안쓸께요 )
2 일때는 UV가 (0.6 , 0.0)이 되고
3 일때는 UV가 (0.0 , 0.3)이 되고
4 일때는 UV가 (0.3 , 0.3)이 되고
6 일때는 UV가 (0.0 , 0.6)이 되고
7 일때는 UV가 (0.3 , 0.6)이 되고
0 일때는 UV가 (0.0 , 0.0)이 되고
1 일때는 UV가 (0.3 , 0.0)이 되고
2 일때는 UV가 (0.6 , 0.0)이 되고
====================
3 일때는 UV가 (0.0 , 0.3)이 되고
4 일때는 UV가 (0.3 , 0.3)이 되고
6 일때는 UV가 (0.0 , 0.6)이 되고
7 일때는 UV가 (0.3 , 0.6)이 되고
'Shader ' 카테고리의 다른 글
유니티 파티클 커스텀 데이터 쉐이더 : Unity Particle(Shuriken) Custom Data Shader (3) | 2017.12.03 |
---|---|
파티클 커스텀 버텍스 스트림 : Particle Custom Vertex Streams (0) | 2017.11.29 |
벽 뒤에 가려질때 라인 나오는 셰이더 (Hidden line shader) (29) | 2017.08.24 |
스탠실 버퍼 사용하기 (3) | 2017.08.24 |
_LightColor0 란 무엇인가요? (0) | 2017.04.13 |
댓글