전체 글280 [Unity/.Net/문제해결] Socket 통신 Netonsoft Json Array Parsing 프로젝트를 진행하며 서버 DB 데이터 구조에 큰 변동이 있어 Json 데이터를 새롭게 받아오게 되었다. 이전의 데이터는 List 형태로 들어오는 일반적인 단순한 구조의 Json의 형태였다. 그래서 단순하게 JsonConvert.DeserializeObject(download.text);의 형태로 바로 받아볼 수 있었다. 하지만, 이번에 들어오는 데이터를 확인해보니, 처음 보는 형태라 당황스러웠다. 어쨌든 해결해야 하니, 에러를 기반으로 구글링 한 결과, Json의 구조에 대하여 자세히 공부하게 되었다. 받은 데이터는 {"result":1, "data":[{\"idx\":1, ....\"data\"[{\\\"name\\\":\\\"str\\\"...}]"} 이런 형태로 출력되었다. 구글링한 결과,.. 2024. 9. 3. [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.. 2024. 9. 2. [ 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;.. 2024. 9. 2. [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.. 2024. 8. 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 공부는 많이 했다고 생각한.. 2024. 8. 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.. 2024. 8. 30. [Unity] ?. 연산자와 ?? 연산자 인턴으로 맡게 된 기존 VR 프로젝트 오류 수정과 리팩토링을 진행하며 ?.연산자를 정말 많이 보았다. 그러던 중 전의 게시물의 == 연산자와 어떻게 다른 역할을 하는지 같이 공부하게 되었다. ?. 연산자 : null이 아니면 참조하고 null이면 null 처리 ?? 연산자 : null이면 다음에 오는 값으로 처리 ?.와 ?? 연산자 같이 사용: 참조가 null이면 다음에 오는 값으로 처리 == 연산자와 다른 점이 있다면,== 연산자는 Unity에서 custom한 ==로, 실제 null 대신 가짜 null Object를 통하여 오류 정보를 알려준다. ?.연산자는 진짜 null 처리가 된다. 실무 코드를 보다 보니 확실히 눈이 뜨이고 많이 배워가는 듯 하다. C++을 배우며 Unity Engine을 살펴.. 2024. 8. 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++로 구성되어있.. 2024. 8. 21. [C++] Reference(참조자), 데이터 동적 할당 new 개념 공부 1. Reference(참조자) C와 C++의 차이를 공부하다가 레퍼런스에 대하여 공부하게 되었다. 레퍼런스는 C에는 없던 개념으로, 포인터와 유사한 개념이다. 하지만 포인터가 메모리 상에 존재하여 공간을 차지하는 반면 레퍼런스는 보통의 경우 공간을 차지하지 않는다. 레퍼런스를 사용하는 이유는, 참조하는 타입의 크기와 상관없이 주소값만 전달하면 되기 때문이다. 개념을 공부하며 다른 사람에게 설명하기 쉬운 비유가 생각났다. 예를 들어, ppt로 포트폴리오를 만들어 메일로 첨부하는 것 (직접 타입 전달)과드라이브에 포트폴리오를 올려 URL을 첨부하는 것 (주소값 전달)의 차이와 비슷하다고 느꼈다. 실제로 Gmail을 보내게 되면 일정 이상의 크기는 직접 첨부가 아니라 구글 드라이브 링크를 통하여 전달하.. 2024. 8. 16. [METAVERSE EXPO 2024] 4-1 프로젝트 부스 참여 후기 현재 진행 중인 서울시 지원 뉴딜일자리사업 XR Unity 개발자 육성 과정 중METAVERSE EXPO 2024에 부스로 참여하게 되었다. 엑스포 D - 1!이 날 팀 현수막을 받았는데, 어두운 분위기에 맞게 디자인하였더니(인쇄물이라는 것을 고려하지 못하고)너무 어두워서 정말 아무것도 보이지 않았다..😢😢 너무 속상했지만 좌절하지 않고 팀원들과 사비를 들여 새로운 현수막을 주문하여 둘째 날 오후부터 사용하였다. D - day첫날은 네트워크 문제가 있어 시연을 거의 하지 못하였다. 멀티플레이 게임이었기 때문에, 네트워크가 조금이라도 느려진다면 동기화가 어긋나서 제대로 된 플레이가 되지 않았다😢😢 하지만 가기 전부터 엑스포 가면 첫날은 거의 시연 못 할 것이라는 말을 계속해서 들어왔기 때문에현수.. 2024. 7. 19. [Unity/최적화] 최적화 할 것 메모 1. Scriptable Object Monobehavior 대신 ScriptableObject 상속받음 최적화메모리관리 2. sprite 크기 4배수 3. sprite formatRGB / RGBA (알파값 필요함) 4. Gameview의 오른쪽 위 stats - Batches 줄이는 것이 목표! - sprite Atlas 5. LOD거리에 따라 폴리곤 수 조절 6. 드로우콜 배칭 - 동적배칭, 정적배칭동적 - CPU 시간 많이 걸림정적 - 메모리 사용량 많음 7. Renderer.material 대신 sharedMaterial로 사용 8. Canvas 나누기 - 동적Canvas, 정적Canvascanvas는 일부가 변화하면 캔버스 내부의 모든 것을 다시 불러오기 때문 9. mp3파일 제외 2024. 7. 19. [Unity/UGS] Remote Config 활용하기 Remote Config는 데이터 값을 UGS 페이지 상에서 바로 쉽게 변경하는 기능이다. 자주 변하는 데이터를 활용하면 개발자가 아닌 사람에게 굉장히 쉽고 직관적으로 다가올 것이라 생각된다. Install unity에서 관리 Add Keypublishpublish 등록한 key 보임바꾸고 push 바뀐 모습 Dashboard에서 바꿈using System.Collections;using System.Collections.Generic;using System.Threading.Tasks;using Unity.Services.Authentication;using Unity.Services.Core;using Unity.Services.RemoteConfig;using UnityEngine;public .. 2024. 7. 19. 이전 1 2 3 4 5 6 ··· 24 다음