안녕하세요.Obfuscator 라는 난독화 보안 툴을 사용하여 빌드를 할 경우에니메이션은 정상적으로 재생이 되는데 그 에니메이션에 설정한에니메이션 이벤트가 실행되지 않는것 같습니다.혹시 이를 해결할 방법이 있을까요?Obfuscator 설정에서 AnyPortrait 네임스페이스는 난독화를 안하도록 스킵설정을 해봐도이벤트 동작이 안되네요.
Chan min Kang님, 안녕하세요!
코드 난독화 툴을 이용하는 경우, 유니티에서는 Reflection에 관련된 코드들은 난독화의 예외를 둘 것을 권장합니다.
기본적인 유니티의 이벤트부터, SendMessage나 Invoke, Coroutine, RPC와 같이 사용되는 이벤트들은 모두 난독화에서 제외가 되어야 정상적으로 동작합니다.
( 참고 : https://support.unity3d.com/hc/en-us/articles/205838999-Do-you-have-advice-on-how-to-obfuscate-C-code- )
AnyPortrait의 애니메이션 이벤트는 유니티의 SendMessage를 이용하여 구현되어있습니다.
따라서 이 경우엔 AnyPortrait의 네임 스페이스에 스킵 설정을 하는 것으로는 아마도 해결이 되지 않으며, AnyPortrait 및 해당 이벤트를 받는 리스너에서의 "애니메이션 이벤트의 이름" 자체를 난독화의 예외로 두어야 해결이 됩니다.
애니메이션 이벤트로서 호출되는 동일한 이름의 함수가 난독화에 의해서 이름이 바뀐다면 Reflection이 정상적으로 동작하지 않을 것 입니다.
이 해결 방법은 모든 난독화 툴에 적용되는 일반적인 것이지만, 만약 위 방법으로도 해결이 되지 않는다면 댓글로 다시 알려주세요!
저희가 도움을 드리겠습니다.
감사합니다.
Eng.
Q.
When building with code obfuscation assets such as "Obfuscator", AnyPortrait's "Animation Event" does not work properly.
A.
Since AnyPortrait's "Animation Event" is called using "Reflection", the function corresponding to that event should not be obfuscated.
(Note: https://support.unity3d.com/hc/en-us/articles/205838999-Do-you-have-advice-on-how-to-obfuscate-C-code- )