Unity 64

[Unity] Installer 버전 생성하기, Inno Setup 사용, folder 오류 해결

일반인이 Unity build 파일을 설치하게 하고 싶어 알아보다 Inno Setup을 사용하는 방법을 사용하게 되었다.  !주의할 점!output folder directory는 어느 pc에나 있는 directory로 지정하거나 해당 directory를 생성해주어야 함. 포스팅 글들 무작정 따라 하지 않고(저처럼) 자신의 에디터 버전과 상황에 맞게 생성해 주기! 그냥 동적 생성 데이터(실행 후 생성되는) 제외하고 모두 추가하면 됩니다.  폴더 추가 시 다운받을 때 폴더를 zip파일 분해처럼 원래 폴더의 내부 데이터만 꺼내기 때문에 추가할 폴더는 같은 이름으로 dummy folder 만들어주기!    번외)여기서 하나 궁금해져서.. 설치 성공한 빌드파일 기반으로 위처럼 같은 이름의 각각의 폴더 말고임의로..

Unity/공부 2024.09.12

[Unity/.Net/문제해결] Socket 통신 Netonsoft Json Array Parsing

프로젝트를 진행하며 서버 DB 데이터 구조에 큰 변동이 있어 Json 데이터를 새롭게 받아오게 되었다.  이전의 데이터는 List 형태로 들어오는 일반적인 단순한 구조의 Json의 형태였다. 그래서 단순하게 JsonConvert.DeserializeObject(download.text);의 형태로 바로 받아볼 수 있었다.  하지만, 이번에 들어오는 데이터를 확인해보니, 처음 보는 형태라 당황스러웠다. 어쨌든 해결해야 하니, 에러를 기반으로 구글링 한 결과, Json의 구조에 대하여 자세히 공부하게 되었다.  받은 데이터는 {"result":1, "data":[{\"idx\":1, ....\"data\"[{\\\"name\\\":\\\"str\\\"...}]"} 이런 형태로 출력되었다.   구글링한 결과,..

Unity/문제 해결 2024.09.03

[Unity/문제해결] Web File size Byte 변환하기

서버에서 올린 영상에 자동으로 측정되는 파일 크기가 json 형식으로 들어오는데, 설정해둔 UI가 뭔가 이상해서 보니 1.0000000E7 이런 형태로 들어오고 있었다. 처음에는 E7?E8이게 무슨 단위인지 몰라서 구글링해봤지만, 원하는 정보가 없었다.  마침 백엔드 수석님이 지나가셔서 질문했더니, E = 10 의 7승 이라고 말해주셨다!!!!!듣고 보니 모두 파악이 되었다.  이를 활용하여 원하던 progress에 활용할 Byte 단위로 변환하였다. 이 방법이 효율적인 방법인지는 모르겠다. 백준 물골드의 알고리즘 실력이다. string size = 1.0000000E7; //예시private void AddSize(Info info){ if(size==null)return; string[] size_s..

Unity/문제 해결 2024.09.02

[ Unity .Net Web Socket/문제 해결 ] 네트워크 데이터 연결 null 값 처리하기

서버의 DB가 아직 안정화되지 않은 상태에서 Unity Client는 계속 test data로 진행을 해야 하는 상황이었다. 어떤 값은 null로 들어와 진행을 할 수 없었는데, 어떻게든 진행하기 위하여 임시로 처리하는 과정을 시도하였다.  지난번 포스팅한 ??연산자를 이용하였다. 2024.08.23 - [Unity/공부] - [Unity] ?. 연산자와 ?? 연산자 [Unity] ?. 연산자와 ?? 연산자인턴으로 맡게 된 기존 VR 프로젝트 오류 수정과 리팩토링을 진행하며 ?.연산자를 정말 많이 보았다. 그러던 중 전의 게시물의 == 연산자와 어떻게 다른 역할을 하는지 같이 공부하게 되었다.  ?narmhye.tistory.com int a 가 null인 경우, 처음에 단순하게 int b = a??1;..

Unity/공부 2024.09.02

[Unity NetCode/ 문제 해결 완료] Build 실행 파일의 StartClient error

문제 상황 :  Unity Editor에서 Play 정상 작동, Build Play Client 접속 문제 Host의 Address를 찾고 connect한 이후  IsListening이 true로 남아있는 경우가 있어 StartClient 실패 1. 연결되지 않은 Client 종료를 하지 않는 경우 발생.  2. NetworkManager의 ShutdownInternal()을 실행하지 않음.  3. IsListening이 true로 다음 IP로 넘어가 StartClient 실행 4. 실제 Host IP에 접근하면 Client의 Instance가 이미 존재하여 StartClient 실패 문제 상황 분석 :  Login의 FindHost()의 반복문은 프레임 차이의 속도를 제어하는 Time.deltaTime..

Unity/문제 해결 2024.08.30

[Unity NetCode/문제 해결 완료] 멀티플레이 Client 연결 Error

Unity NetCode 1.0.0(pre 9) 버전에서 발생한 문제이다.  문제 상황:Host가 접속하여 Server가 존재하는 상황이지만,Client의 입장에서 NetworkTransport.ConnectionData.Address에 정확하게 접근하여도 접속을 실패하는 문제이다.    정말 초기 버전의 NetCode 1.0.0의 document가 손상된 부분이 많아 정말 꾸역꾸역 이해해 가며원인이 무엇일까 생각해보았다.  하지만 원본 프로젝트는 실제로 플레이에 문제가 없다고 Client 측에서 전달받았다.  해결 방법 : 결국 해결하게 된 방법은 ...ㅎㅎHost의 방화벽을 모두 해제하는 것이 방법으로 바로 Client의 Server 연결이 성공하였다. 덕분에 NetCode 공부는 많이 했다고 생각한..

Unity/문제 해결 2024.08.30

[SteamVR /문제해결 완료] Meta Quest Controller 인식 오류

1. 문제 상황 : 빌드 파일 컨트롤러 인식 오류 Meta Quest 2 device를 사용하여 프로젝트에 SteamVR(OpenVR)을 통하여 접근하고 있던 상황이다. Unity Editor에서 다음과 같은 오류가 종종 떴고, 에디터에서는 다시 플레이하면 해당 부분이 나타나지 않았기 때문에, 해결하지 않고 있었다.  하지만 실제 build exe 파일을 실행하면 매번 다음과 같은 오류가 발생하였다. HMD는 인식하여 움직이지만, 컨트롤러 연동이 안되는 상황이 발생하였다.  [SteamVR] GetInputSourceHandle (/user/hand/left) error: NoData UnityEngine.Debug:LogError (object) Valve.VR.SteamVR_Input_Source:I..

Unity/문제 해결 2024.08.30

[Unity] ?. 연산자와 ?? 연산자

인턴으로 맡게 된 기존 VR 프로젝트 오류 수정과 리팩토링을 진행하며 ?.연산자를 정말 많이 보았다. 그러던 중 전의 게시물의 == 연산자와 어떻게 다른 역할을 하는지 같이 공부하게 되었다.  ?. 연산자 : null이 아니면 참조하고 null이면 null 처리 ?? 연산자 : null이면 다음에 오는 값으로 처리 ?.와 ?? 연산자 같이 사용: 참조가 null이면 다음에 오는 값으로 처리 == 연산자와 다른 점이 있다면,== 연산자는 Unity에서 custom한 ==로, 실제 null 대신 가짜 null Object를 통하여 오류 정보를 알려준다. ?.연산자는 진짜 null 처리가 된다.  실무 코드를 보다 보니 확실히 눈이 뜨이고 많이 배워가는 듯 하다. C++을 배우며 Unity Engine을 살펴..

Unity/공부 2024.08.23

[Unity] Unity의 custom 비교 연산자 ==

Memory Leak(메모리 누수) 관련 구글링 도중 재미있는 내용이 있어 공부해보았다.  https://note4iffydog.tistory.com/81 유니티 - Unity Memory Leak 이유와 관리 방법(Memory Profiler)memory leak은 성능 저하의 원인중 하나이고, 최적화를 위해 잡아야 하는 문제들중 하나이다. unity 내부에서 memoty leak을 유발 할 수 있는 이슈중 하나로, 잔류 unity instance가 있다. 이 경우 어디서 어note4iffydog.tistory.com위 블로그를 통하여 원문 공부 내용 Memory Leak의 원인 중 하나인 instance 잔류 문제에 관한 주제이다. Unity 스크립트는 C#으로 작성하지만, 엔진은 C++로 구성되어있..

Unity/공부 2024.08.21

[METAVERSE EXPO 2024] 4-1 프로젝트 부스 참여 후기

현재 진행 중인 서울시 지원 뉴딜일자리사업 XR Unity 개발자 육성 과정 중METAVERSE EXPO 2024에 부스로 참여하게 되었다.   엑스포 D - 1!이 날 팀 현수막을 받았는데, 어두운 분위기에 맞게 디자인하였더니(인쇄물이라는 것을 고려하지 못하고)너무 어두워서 정말 아무것도 보이지 않았다..😢😢 너무 속상했지만 좌절하지 않고 팀원들과 사비를 들여 새로운 현수막을 주문하여 둘째 날 오후부터 사용하였다. D - day첫날은 네트워크 문제가 있어 시연을 거의 하지 못하였다. 멀티플레이 게임이었기 때문에, 네트워크가 조금이라도 느려진다면 동기화가 어긋나서 제대로 된 플레이가 되지 않았다😢😢 하지만 가기 전부터 엑스포 가면 첫날은 거의 시연 못 할 것이라는 말을 계속해서 들어왔기 때문에현수..