한참이 지난 후, WaitWhile 과 WaitUntil을 알게 되었습니다. 이에 수정합니다. 수정 전 글의 방식은 매 프레임마다 애니메이션이 끝났는지 확인하는 코드입니다.틀린 코드인 것은 아닙니다.매프레임마다 처리해야 할 일이 있다면yield return null 이나 yield return new WaitForFixedUpdate 같이프레임마다 재생상태를 검사해야하는 것은 맞습니다. 하지만 단순히 재생이 완료되었는지를 확인하는 거라면WaitUntil 과 WaitWhile 을 사용하면 됩니다. IEnumerator EndFrameEvent() { Animator anim = GetComponent(); //매 프레임 단위로 while 문을 반복하여 애니메이션의..
//테크니컬 아티스트를 위한 유니티 쉐이더 스타트업 발췌 Properties{ _Color("Color", Color) = (1,1,1,1) _Size("Out Line Size", float) = 1 } SubShader{ Tags { "RenderType" = "Opaque" } LOD 200 //cull은 '배제'를 의미한다. front를 배제하여 렌더링 하지 않았으니 그릴 것은 면의 뒷면일 뿐이다. //그러니까 면을 뒤집는 것과 같다. (= flip) cull front //여기서 부터가 면을 뒤집고 버텍스를 이동시키는 첫번째 Pass CGPROGRAM #pragma surface surf _Outline vertex:vert noshadow noambient #pragma target 3.0 /..
//테크니컬 아티스트를 위한 유니티 쉐이더 스타트업 발췌알파 블렌딩을 하면 반투명의 객체들이 서로 엉켜 엉망으로 렌더링 되는 경우가 있는데,2Pass를 사용하여 첫 Pass는 z 버퍼에 그리되, 화면엔 렌더링 하지 않는 것으로 문제를 해결할 수 있다고 한다. SubShader{ Tags {"RenderType" = "Transparent" "Queue" = "Transparent"} cull back //Zwrite를 켜서 가려지는 부분은 그리지 않도록 한다. zwrite on //하지만 화면에는 아무것도 그리지 않는다. ColorMask 0 //1Pass CGPROGRAM #pragma surface surf _DrawZBufferButNoDraw noambient noforward..
