반응형 유니티 공부170 C# - Try패턴(TryLoad,TryParse등)에서 out 사용시 null을 조심하자! 분명히 모든 변수를 초기화를 했는데 계속 NullReferenceException가 떴다. 원인을 찾아보자 하다가 TryLoad때문이라는 것을 알게되었다. Try 사용시 null 조심!아래와 같이 inventory리스트를 먼저 초기화했다고 가정해보자void Main(){ List inventory = new List(); if (TryLoad(out SaveData saveData, out List list)) { inventory = list; }}inventory도 미리 new List()으로 초기화했으니까 null 에러가 날 일이 없다고 생각하겠지만 실제로는 TryLoad() 함수 내부에서 이 값을 null로 덮어씌워졌기 때문에 이후 코드에서 inventory를 .. 2025. 4. 24. C# - 정수 입력 받을때 Parse보다는 TryParse를 사용해서 예외처리까지 확실히! 보통 정수를 받아온다하면 아래와 같이 int.Parse를 많이 사용한다. int number = int.Parse(Console.ReadLine()); 하지만 만약에 숫자를 입력한 것이 아니라 문자열이 들어오면 바로 예외가 발생하게 됩니다. 그래서 애초에 예외가 발생하지 않도록 처리할 수 있는 TryParse를 사용하는 것이 더 안전합니다. TryParse이란?변환을 시도하고 성공 여부를 bool로 반환하는 메서드입니다. 변환에 성공하면 해당 값을 out 변수에 저장합니다. 실패시 기본값(string인 경우 "", int인 경우 0, bool인 경우 false)이 들어가게 됩니다.bool isSuccess = int.TryParse("123", out int number);예시string input = .. 2025. 4. 24. GitHub - 현재 작업중인 브랜치에 다른 브랜치 최신 내용 반영 방법 협업을 하다 보면 각자 기능이나 작업을 개인 브랜치에서 개발하고 그 변경 사항들을 모두 통합에 관리하는 develop 브랜치를 사용하는 경우가 많다. 그래서 develop 브랜치의 최신 변경사항을 내 작업 브랜치에 반영(동기화)하는 방법에 대해 알아보자 예시개인 브랜치 : feature/quest/devlop 브랜치 : 모든 팀원이 작업을 merge하는 통합 브랜치 왜 develop 브랜치의 최신 내용을 반영해야 하나요?개인 브랜치에서 작업하던 중 팀원들이 develop에 새로운 기능을 올려버리면 내 브린치는 구 버전으로 작업하게 된다.이 상태로 작업을 이어가면 나중에 develop에 merge할때 충돌이 발생할 가능성이 높고 버그나 기능 오류로 이어질 수 있다. 따라서 주기적으로 develop 브랜치.. 2025. 4. 22. Unity - 디버그 프로필에 지정된 디버그 실행 파일 .exe가 없습니다 에러 협업 도중 GitHub에서 스크립트를 다운로드 받고 디버그를 하던 중 아래와 같이디버그 프로필에 지정된 디버그 실행 파일 .exe이 없다고 오류가 떴다.원인 찾기: .NET 6.0과 Visual Studio 버전 호환 문제이것저것 살펴보던 중 **해당 프로젝트의 대상 프레임워크가 .NET 6.0**으로 설정되어 있다는 점을 발견했습니다.그리고 결정적인 사실 하나!Visual Studio 2019에서는 .NET 6.0 이상을 공식적으로 지원하지 않습니다.즉, Visual Studio 2019에서는 .NET 6.0 기반 프로젝트를 제대로 빌드하거나 디버깅할 수 없는 것이었습니다. 해결 방법: Visual Studio 2022 + .NET 6.0 Runtime 설치그래서 Visual Studio 2022를 설.. 2025. 4. 21. Unity - 🌸 Unity 에셋 스토어 봄 세일 시작!(최대 70% 5월 8일까지 ) 🌸 Unity Asset Store 봄 세일 시작(5/8일 까지) ✅ 300개 이상 인기 에셋 50% 할인✅ 한정 기간 Flash Deals – 최대 70% 할인!✅ 기간: 지금부터 ~ 2025년 5월 8일까지 🧰 어떤 에셋들이 포함되어 있나요?- 고퀄리티 캐릭터 및 환경 에셋- 생산성과 퀄리티를 끌어올려 줄 툴킷- 실감 나는 효과음을 포함한 오디오 에셋등등 유니티 에셋 스토어 링크 Unity 에셋 스토어게임 제작을 위한 베스트셀러 에셋을 만나 보세요. 다양한 2D/3D 모델, SDK, 템플릿, 툴로 구성된 유니티의 카탈로그를 활용하여 게임 개발의 속도를 높일 수 있습니다.assetstore.unity.com 🌟 Flash Deal도 놓치지 마세요!세일 기간 중 일부 에셋은 일시적으로 70.. 2025. 4. 18. C# - JSON 파일 직렬화/역직렬화시 주의 사항 정리(Tuple, 프로퍼티, 한글이 깨지는 경우) 직렬화/역직렬화란? 직렬화(Serialization)객체를 저장 가능한 형식(텍스트 혹은 이진 데이터)로 바꾸는 과정이다.C#에서 class,List,string,int와 같은 객체의 상태를 문자열(JSON)로 바꾼다. 쉽게 말하면 메모리에 있는 데이터를 파일로 저장할 수 있게끔 바꾸는 것이다.try{ // 직렬화 GameSaveState saveState = new GameSaveState(player, inventory, items); string saveJson = JsonSerializer.Serialize(saveState, new JsonSerializerOptions { WriteIndented = true }); File.WriteAllTe.. 2025. 4. 15. 이전 1 2 3 4 ··· 29 다음 반응형