내일배움캠프

내일배움캠프 Unity - TIL : 25.01.23

달시_Dalsi 2025. 1. 23. 22:35
728x90

오늘 학습한 내용

1) Unity 함수 실행 순서 이해 및 변수 값 저장 문제 해결

 

Unity의 기본 이벤트 함수인 AwakeStart의 실행 순서를 제대로 인지하지 못해 변수 값 저장 과정에서 오류가 발생했습니다.

Unity 공식 문서를 참고하여 이벤트 함수의 실행 순서를 파악한 후, 변수 값 저장이 올바른 순서로 이루어지도록 코드를 수정하여 문제를 해결했습니다.

https://docs.unity3d.com/kr/2022.3/Manual/ExecutionOrder.html

 

이벤트 함수의 실행 순서 - Unity 매뉴얼

Unity 스크립트를 실행하면 사전에 지정한 순서대로 여러 개의 이벤트 함수가 실행됩니다. 이 페이지에서는 이러한 이벤트 함수를 소개하고 실행 시퀀스에 어떻게 포함되는지 설명합니다.

docs.unity3d.com

 

 

2) UI 위에 파티클 출력 문제 해결

파티클을 UI 위에 출력하려 했지만 기본적으로 Overlay UI 위에 3D 오브젝트를 출력할 수 없어 구현에 어려움이 있었습니다. 어제 외부 플러그인(ParticleEffectForUGUI)을 사용하여 문제를 해결했으나, 빌드 과정에서 Letterbox가 필요하여 구현했더니 위에 잔상이 남는 문제가 발생했습니다.

이를 해결하기 위해 CanvasRenderModeCamera 모드로 변경하고, 파티클을 UI보다 카메라에 더 가깝게 배치하여 UI 위로 출력되도록 수정했습니다.


문제 및 해결 과정

문제 (Unity 함수 실행 순서 이해 및 변수 값 저장 문제 해결)

Unity 이벤트 함수 실행 순서를 제대로 이해하지 못해 변수 값 저장이 꼬이는 문제 발생했습니다.

 

시도한 해결 방법

Unity 이벤트 함수 실행 순서를 문서를 통해 학습한 뒤, 올바른 실행 순서에 따라 변수 저장 코드를 수정했습니다.

 

결과

Unity의 이벤트 함수 실행 순서를 명확히 이해하고 변수 저장 문제를 해결했습니다.

 

 

문제 (UI 위에 파티클 출력 문제 해결)

외부 플러그인을 사용하여 overlay UI위에 파티클을 출력했으나 빌드 후 LetterBox가 필요하여 구현했더니 파티클이 위에 잔상으로 남는 것을 확인하여 문제가 되었습니다.

 

시도한 해결 방법

여러 방법을 시도했으나 Overlay 모드에서는 구현이 어려웠고, Canvas RenderMode를 Camera 모드로 변경한 뒤, 파티클을 UI보다 카메라에 가깝게 배치하는 방식으로 해결. Camera모드로 하니 Letterbox에 잔상이 안남는 것을 확인했습니다.

 

결과

파티클이 UI 위에 자연스럽게 출력되도록 구현하고 Letterbox 문제도 수정했습니다.


새롭게 알게 된 점

Unity의 기본 함수인 이벤트 함수들의 실행 순서

이벤트 함수들의 실행 순서를 잊고 급한대로 코드를 작성하다가 버그를 보고 다시끔 학습하였습니다.

 

Canvas의 Overlay일때 LetterBox의 잔상

overlay일때 잔상을 없애기 위해 여러가지 방법을 시도했지만 안되는 것을 깨닳고 Camera로 변경하여 해결했습니다.


앞으로의 계획

내일 튜터님에게 피드백 받는 내용을 토대로 작업을 진행할 예정입니다.



728x90