728x90
오늘 학습한 내용
1) Instantiate 시 부모 객체를 설정하면 자식 순서가 플랫폼마다 다르게 적용되는 문제
- WebGL에서는 자식 순서가 항상 0번이 되고, Windows 및 Unity 에디터에서는 마지막 순서가 됨.
- SetSiblingIndex를 활용하여 일관된 자식 순서를 유지하도록 수정.
2) WebGL 빌드에서 예외 처리(Enable Exceptions) 설정이 필요한 문제
- 특정 상황에서 런타임 오류 발생하지만 오류 메시지가 출력되지 않음
- Project Settings > Player > Publishing Settings > Enable Exceptions → "Full" 또는 "Explicitly Thrown Exceptions Only"로 변경
문제 및 해결 과정
1) 문제 (Instantiate 시 자식 순서 문제)
Instantiate를 사용하여 동적으로 객체를 생성하고 특정 부모를 설정했을 때 플랫폼마다 자식 순서가 다르게 적용되는 문제가 발생했습니다.
- WebGL(웹 빌드) → 새 오브젝트의 자식 순서가 항상 0번으로 설정됨
- Windows 및 Unity 에디터 → 새 오브젝트의 자식 순서가 마지막이 됨
시도한 해결 방법
SetSiblingIndex 메서드를 사용하여 강제로 자식 순서를 맞추는 방식으로 해결했습니다.
GameObject newObject = Instantiate(prefab, parentTransform);
newObject.transform.SetSiblingIndex(parentTransform.childCount - 1); // 항상 마지막 순서로 설정
2) 문제 (WebGL 빌드 시 예외 처리 설정 문제)
- WebGL로 빌드했을 때 특정 상황에서 런타임 오류 발생
- Windows 빌드나 에디터에서는 정상 동작했지만, WebGL에서는 예외 처리가 제대로 동작하지 않음
시도한 해결 방법
- Project Settings → Player → Publishing Settings에서 Enable Exceptions 값을 Full 또는 적절한 옵션으로 설정해야 함.
- 예외 처리를 활성화하면 WebGL 환경에서도 런타임 예외를 올바르게 처리할 수 있음.
- 정확한 원인은 아직 완전히 이해하지 못했지만, WebGL의 제한적인 예외 처리 방식이 관련이 있을 것으로 추정됨.
새롭게 알게 된 점
- Instantiate 시 자식 순서가 플랫폼마다 다르게 적용될 수 있으며, SetSiblingIndex로 해결 가능함.
- WebGL 빌드시 예외 처리를 위해 Enable Exceptions 설정을 조정해야 함.
- WebGL과 다른 플랫폼의 차이를 이해하고 대응하는 것이 중요함.
728x90
'내일배움캠프' 카테고리의 다른 글
내일배움캠프 Unity - TIL : 25.04.09 (0) | 2025.04.09 |
---|---|
내일배움캠프 Unity - TIL : 25.04.04 (1) | 2025.04.04 |
내일배움캠프 Unity - TIL : 25.03.27 (0) | 2025.03.27 |
내일배움캠프 Unity - TIL : 25.03.26 (0) | 2025.03.26 |
내일배움캠프 Unity - TIL : 25.03.25 (0) | 2025.03.25 |