Custom Shader GUI Basic Frame
유니티에서 쉐이더를 만들게 되면 프로퍼티에 따라서 GUI도 알아서 자동으로 나온다.
하지만 보통 사용하게 되는 그래픽팀에서는 작업을 위해서 여러 수정을 요청 할때가 많고 그럴때는 shadergui 라는 스크립트를 상속받아 프로그래머가 직접 커스텀을 해줘야한다.
지금까지는 baseshadergui 라는 스크립트를 상속받아 적당히 만들었지만 이번에 몇개의 큰쉐이더들의 gui를 크게 바꿔야 할 때가 오자 상당히 코드도 난잡해져있고 수정하기 복잡해져서 갈아엎고 새로 만들었다.
-ShaderGUI를 상속받은 CustomShaderGUI-
심플하게 필요한 기능과 필수로 구현해야할 부분만 따로 빼서 만들었다.
간단하게 설명하자면 MakeFoldoutHeaderGroup은 foldout 형식의 gui를 만들게 해준다.
header의 이름과 짤렸지만 안쪽에 들어갈 함수를 넣으면 아래와 같은 형식의 gui가 만들어진다.
DoPopup은 이름 그대로 팝업 형식을 만들때 쓴다 유용하기 때문에 baseshadergui에 있는 것을 그대로 가져왔다.
쉐이더에서 사용할 모든 프로퍼티들은 FindProperties에 넣으면되고 MaterialChanged에서는 주로 쉐이더 키워드들을 컨트롤 할때 사용하고 DrawSurceinputs에 원하는 순서로 프로퍼티들을 정렬하면된다.
실제 사용 gui 스크립트는 최상단의 링크에 있는 LitSpecularWithMaskGUI.cs를 참고
아무튼 gui 스크립트들이 대부분 좀 난잡했는데 깔끔해지니 기분이 좋다.
댓글 없음:
댓글 쓰기