문제해결 13

[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 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

[문제해결/PJ] PhotonView Character Customizing 동기화 문제2

전에 올렸던 해결 방법에서 또 다른 문제가 발생하여 Photon 프로토콜에 대하여 공부해 보았다.  현재 문제 대상인 Player prefab은 포톤 서버가 연결된 후에 커스텀을 변경시켜야 한다. 이렇게 씬에 배치된 동적인 오브젝트를 변경시켜야 할 때는 IPunObservable를 상속받아 정보를 전달해 주어야 한다고 한다.  using ExitGames.Client.Photon;using ExitGames.Client.Photon.StructWrapping;using Photon.Pun;using Photon.Realtime;using SeongMin;using System.Collections;using System.Collections.Generic;using System.Drawing;using ..

[문제해결/PJ] PhotonNetwork를 이용하여 Photonview로 멀티 플레이어 캐릭터 커스터마이징 적용하기

네트워크 상에서 각 플레이어들의 커스터마이징을 적용시키기 위해 SetCustomProperties를 사용하였다. 하지만 계속해서 캐릭터 더미들이 남거나 연동되지 않는 문제거 발생하였고, 모든 부분을 차근차근 디버그를 찍어보며 확인하였다. 하지만 모든 기능은 잘 작동하였고, 문제를 고민해보다 생각난 것이 어떠한 photonView를 참조하는가???이다. ‼문제 발견참조하는 photonView가 원하던 대상인지 살펴보자.처음에 기능을 기존에 존재하던 커스텀 프로퍼티와 같은 메서드에 넣었는데, 해당 photonView는 canvas가 대상으로 되어있었다. 당시에는 photonView의 원리를 제대로 이해하지 못하여 실수하였다. ‼해결 방법해당 기능을 적용 할 대상인 player prefab의 PlayerCon..

[Unity/문제해결] OnBecameVisible 작동 문제

OnBecameVisible는 부착된 오브젝트를 기준으로 작동한다. 따라서 부착된 오브젝트에 렌더러가 있어야 작동함 보통 부모로 빈 오브젝트를 기반으로 오브젝트를 생성하기 때문에 이런 문제를 겪은 듯 하다.  [렌더러가 없어서 작동 안함]  [렌더러가 있는 자식 오브젝트에 붙여보니 정상적으로 작동]  또한 모든 카메라를 대상으로 체크하기 때문에, Player의 MainCamera 뿐만 아니라Scene을 비추는 화면 또한 해당 오브젝트를 비추면 작동하지 않는다.

Unity/문제 해결 2024.05.24

[Unity/문제해결] 실행 중에 Object 변경, 저장하고 싶을 경우

실행중에 Object를 변경하거나 추가하였을 경우, 실행을 중단하면 모든 것이 실행 전의 상태로 돌아간다. 실행중임을 자각하지 못하고 변경한 상황도 있지만, 본인의 경우에는 현재 진행중인 프로젝트에서 불가피하게 실행중에 작업해야하는 상황이 있었다. 튜토리얼이 끝난 Stage6부터는 Stage6에서 생성된 UIDirector(Canvas)를 가지고 Stage7, Stage8까지 가져간다. 원래 Director의 부분을 참조하면서도 Stage6, 7, 8 각각의 UI를 다르게 설정할 부분이 생겨, 실행중에 작업을 하는 것이 효율적일 듯 하였다. 그래서 실행중에 변경한 오브젝트를 프리팹화 하여 실행을 중지해 보았더니 그대로 저장되었다. 이후 프리팹을 가져와 Unpack하고 사용하여 성공적으로 진행하였다. 본인..

Unity/문제 해결 2023.05.23