버그 해결을 위한 모든 질문을 던져
0 votes
74 views
대략적인 프로젝트의 구성은 이러합니다.

ui만 존재하는 프로그램이며 로그인과 계정생성 설정관리등 장면들을 씬전환까지필요없다고 생각해서

프리펩으로 만들어 DontDestoryOnLoad 속성을 먹인 오브젝트 밑에 각장면에 프리펩을들고 신호를받아 장면을교체해주는 씬매니저

그리고 외부 csv파일을읽어 텍스트정보와 json을 이용해저장한 로그인 정보등 외부 데이터를 관리하는 데이터 매니저가 있습니다.

 이 프로젝트를 에디터상에서 모든 장면(씬)프리펩을 꺼놓은상태에서 실행을 시키면 입력한데로 로그인씬부터 실행되며 작업한것들이 잘 실행되는데 빌드를 해서 실행하면 로그인씬으로 시작하는건 잘되는데 인풋창과 버튼에 제가 스크립트로 넣은 함수들이 실행이되지않더군요 혹시 제가 빌드를 잘못했나 싶어서 그냥 캔버스에 큰버튼 두개를 이용해 서로의 오브젝트를 끄고키는 기능을만들어 빌드를뽑아봤는데 이 씬은 빌드가 잘되더라구요.

이게 빌드후파일에서는 뭐에서 문제가 생겼는지 볼수도없고 빌드를 잘아는게 아니라 빌드버튼을딸칵하면 빌드된다는것정도만 알아서

너무 답답하더라구요 위 내용에서 문제가 무엇일지 생각되는게 있으시거나

빌드시에 빌드는 나왔는데 동작에 문제될만한 함수나 함수사이클 종류를 아시는 분들이 계신다면

정말꼭좀 답변부탁드립니다 ㅠㅠ.

빌드 플랫폼은 윈도우이며 X86_64 ,컴프레션 메소드는 디폴트로 설정해두고 빌드를 시켰습니다.
asked (4 point) , 74 views

1 답변

0 votes
PC경우 디벨롭먼트빌드로 뽑으면 디버거 어태치까지 가능한데 시도해보세요

아무래도 예외가 발생했을텐데 로그도 찍혀있을겁니다. C:\Users\{{사용자이름}}\LocalLow\회사이름\앱이름 위치에 로그가 생깁니다.

UNITY_EDITOR 전처리기로 감싸두면 빌드에 포함되지 않으니 이 부분도 확인해보시고요.
answered (124 point)
감사합니다 이번에 해결하는건 결국 이 이슈가 발생할만한 모든경우의수를 테스트하고 한가지씩 소거하며 빌드를 뽑아내며 해결했습니다. 다음부턴 로그가 찍힌다는것도 알고 전처리기로 감싸는법도 알았으니 조금더....대응을 잘할수 있게됙겠,,,,죠? ㅠㅠ

일단 제가 발생했던 문제는 json 과 csv 의 입출력이 문제였습니다.

기획쪽에서 프로젝트 내부에 임의의 폴더를 만들고 그곳에 csv 데이터테이블을 올려 빌드후에도 수정하고싶다고 하여 그냥 System.IO.Directory.GetCurrentDirectory 를이용해 현재 프로젝트의 패스를 캐싱해 왔는데

이게 에디터에서는 입력한 패스에 파일이있어서 작동을 했는데 빌드본에서는 임의로 만들어버린 파일까지 가져오지않아 파일 입출력기가 위치를 찾지못해 발생하는 이슈였더라구요.....

일단 급한불이었던터라 스트리밍에셋폴더를 이용해 경로를 스트리밍에셋으로 넘겨버리는식으로 해결했습니다.

친절한 답 감사드립니다^^
혹시 궁금한게 있는데 유니티에서 프로젝트 내에 Assets 밖에 만든 임의의 폴더를

빌드했을때 생성시키는 방법이 있을까요?
절대경로 또는 상대경로로 접근할 수 있을겁니다. 하지만 애플리케이션이 어디에 설치될 지 모르니 애매할 수 있겠죠.

Application.persistentPath나 Applicaion.dataPath등 유니티에서 지정한 몇 가지 경로들을 이용하면 감이 잡히실겁니다. 위 프로퍼티들은 플랫폼에따라 다른 위치를 리턴합니다.
아하 감사합니다. Application.persistentDataPath 이경로 같은 경우는 아예 사용자 피씨가 기준인 경로고

Application.datapath는 Assets폴더 밑 경로군여

이러면 후자 같은경우는 빌드된 프로젝트내에선 동작이 안되는건가요?

빌드된 곳에는 Assets폴더는 없던것같은데
Application.xxxDataPath 경로들은 플랫폼에 따라 다른 위치를 리턴합니다. 빌드 후엔 dataPath는 거의 사용하지 않고 streamingAssetPath나 persistentDatapath를 씁니다.
피시 빌드면 디벨롭먼트 빌드로 빌드해서 디버거 붙여보시면 됩니다. 예외 로그도 찍힐겁니다.

버그 해결을 위해 도움을 구하고, 도움을 주세요. 우리는 그렇게 발전합니다.

throw bug 는 프로그래밍에 대한 전분야를 다룹니다. 질문,논의거리,팁,정보공유 모든 것이 가능합니다. 프로그래밍과 관련이 없는 내용은 환영받지 못합니다.

461 질문
607 answers
598 댓글
68,214 users