FrameDebugger 정보를 외부로 내보내기

3106 단어 Unity

FrameDebugger 정보를 외부로 내보내기


이것은 당신이 FrameDebugger 내용을 쓴 기사입니다.
소스는 코코아.
https://github.com/wotakuro/FrameDebuggerSave

뭐 공부 해요?



상기 GIF처럼 FrameDebugger의 정보를 한 걸음 한 걸음 핥아 로그로 출력하는 도구의 보도를 만들어 보세요.
현재 2018.4 편집기 부팅에서만 동작 확인...

왜 이런 일을 합니까?


Unity의 FrameDebugger의 가장 큰 불만점은 그림을 한 걸음 한 걸음 엇갈리지 않으면 묘사에 대한 상세한 정보를 얻을 수 없다는 것이다.
목록에서 재료 공, 재료 공 키워드, 그려진 패스 이름 등을 볼 수 없습니다.
이것은 매우 불만족스러워서 이번에 했다.
특히 Shader Keyword는 Shader Variant를 억제하기 위해 신속하게 획득하는 것이 매우 중요합니다
현재 상황에서 설계하고 제작하지 않으면 목록에서 가져오기 어렵다.

반한 일


FrameDebugger가 어떤 단계에 있는지 지정하지 않으면 자세한 정보를 얻을 수 없습니다.
처음에 FrameDebuggerUtility라는 편리한 반을 발견하여 이곳을 거쳐 조작하였다.
※ Internal 반이라 반사된 폭풍우입니다.

실패한 구현


1.FrameDebuggerUtility.설정 사용
2.FrameDebuggerUtility.count로 프레임 수 읽어들이기
3.FrameDebuggerUtility.limit 값 다시 쓰기
4.FrameDebuggerUtility.프레임 데이터를 GetFrameEventData에서 가져와 내보냅니다. 또한 FrameDebuggerUtility.다음 프레임으로 리셋
형식적 실현.
여기, 편집기 프로그램에서 재생되지 않았을 때 보기 좋았는데...
편집기에서 재생할 때만 실행되는 경우 FrameDebuggerUtility. SetEnable(true)에서 유효한 다음 FrameDebuggerUtility를 사용합니다.설정 사용 을 호출하면 즉시 실패합니다.
표시되지 않아도 FrameDebugger 창 자체가 처리되기 때문에...

현재 구현


어쩔 수 없어, 내가 불렀어. FrameDebuggerWindow 방법을 생각하는 방향으로 했어.
※ 이것도 반사된 폭풍우인데..
1.FrameDebuggerWindow.ShowFrameDebuggerWindow()에서 창을 호출합니다.
2.FrameDebuggerWindow.IfNeeded 사용 시 FrameDebugger 시작
3.FrameDebuggerWindow.프레임 변경 이벤트를 사용하여 프레임 이동 제한
4.FrameDebuggerUtility.프레임 데이터를 GetFrameEventData에서 가져오고 내보내며 FrameDebugger Window에서 가져옵니다.프레임 변경 이벤트 제한 사항을 덮어쓰고 다음 프레임으로 이동합니다.
이러한 느낌은 조작은 FrameDebuggerWindow에서 진행되고 데이터는 FrameDebuggerUtility에서 얻은 형식이다
이렇게 해서 FrameDebugger의 내용을 문자열로 쓰는 데 성공했습니다!!

보충하여 기록하다


하고 싶은 일을 한 것 같아.그나저나 Render Target의 정보도 추출하기 편하네요pic.twitter.com/6gmRcPoqQk-흑하우개(@wotakuro)December 24, 2019


나는 이렇게 CSV를 썼다.

좋은 웹페이지 즐겨찾기