팝업창을 구성하는 UI 요소의 배치상, Particle System 을 이용한 particle의 동작들이 화면에 그려질때, UI 요소의 배치상 화면의 앞에서 그려져야 하는데, 의도와는 다르게 완전히 뒷부분에 그려져서 BackGround Panel 의 뒤에서 요소가 그려지는 문제가 발생하였다. 해당 문제에 대해서 기존에 정상적으로 동작하는 프리팹을 이번 경우는 왜 정상적으로 동작하지 않을까 고려해보던중, 오브젝트에 있는 Particle System 상에서 Renderer 옵션과 관련된 사항에서 해결할 수 있는 부분이 있을 것이라 생각하고 해당 옵션에서 영향을 미칠 만한 부분을 찾아보았다.
이때에 가장 처음에는 화면에 보여지는 순서에 관련된 부분이니까 Order in Layer 가 문제라는 생각을 하였어서 해당 Order를 높여서 가장 앞쪽에서 보여지게 설정해보았는데, 가장 높은 순위로 올려도 동일하게 UI 요소들의 후순위에서 화면에 그려지는것을 확인하였다.
그런 상황에서 Order in Layer 의 위에 존재하는 Sorting Layer ID를 발견하였고, 현재 Particle System 을 컴포넌트로 가지고 있는 오브젝트의 Layer 옵션 뿐만 아니라, Particle System 에 Sorting Layer ID 가 존재하고, 현재의 오브젝트는 기본적으로 Layer 가 UI 로 설정되어 있는 상황인데,
현재의 Particle System의 Renderer 에 존재하는 Sorting Layer ID 의 경우는 Default 로 되어있는 부분을 발견하였다.
이 부분에 의해서 Particle System 을 통해서 불러들인 프리팹의 랜더 순서가 영향을 받아서 화면에 보여지는 순서가 바뀔 수 있다고 생각하여서 해당 부분을 UI 로 변경해주었다.
이렇게 설정해주고 난뒤 Particles 를 Play 해주니 의도한 바와 같이 정상적으로 렌더링 순서를 조정할 수 있었다.
분명 동일한 프리팹을 사용하는데, 이와같이 설정을 따로 해주어야지 정상적으로 동작하는 문제가 발생하는 이유를 생각해볼때, 현재 작업중인 프로젝트에서 Render Pipeline 의 설정을 달리했기 때문일 것이라는 생각이 든다.
기본적으로 정상적으로 동작하던 프리펩의 particle system의 render 설정을 보면 마지막에 Light Probes 밑에 가장 마지막에 Reflection Probes 가 등장하는데,
현재 작업하고 있는 프로젝트에 해당 프리팹을 불러와서 내부 설정을 확인해보면 Light Probes 밑에 가장 마지막에 Rendering Layer Mask 설정이 등장하는것을 볼 수 있다.
이러한 차이가 발생하게 된 배경은 현재 작업중인 프로젝트가 Graphics 설정에서 Scriptable Render Pipeline Settings 를 특정한 Universal Render Pipeline Asset 을 사용하는 상황이기 때문에 그러한 설정이 다른 상황에서 발생하는 차이점이라는 생각이 든다.
이와같이 정상적으로 동작하는 프리펩이 현재 작업중인 프로젝트에서 처음 기획된바와 다르게 동작한다면 Graphics 세팅에서 Render Pipeline Settings 와 관련된 차이를 생각해보고, particle system 에서는 renderer 옵션의 조정을 통해 현재 프로젝트에 맞게 수정해주도록 하자.