묻고 답해요
169만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
유니티 reload script
유니티 버전 : 2021.3.14f1유니티 허브 : 2.4.4 어느날 갑자기 스크립트 저장하고 에디터로 돌아오면 위와 같이 창이 하나 뜨고 무한로딩이 발생합니다. 작업관리자를 열어보면 '응답없음'인 상태로 나오며 강제종료 밖에 할 수 없습니다.컴퓨터 재부팅과 Library, Log, obj, UserSetting 폴더 삭제도 해보았으며 유니티 경로에 한글도 일절 들어가있지 않습니다.Preferences->General에서 Stop Playing And Recompile과 Recompile and continue playing 옵션도 테스트 해 보았고 Enter play mode options도 체크했으나 여전히 같은 문제가 발생합니다.ㅜㅜ 어떻게 하면 좋을까요?
-
미해결14일만에 배우는 ASP.NET CORE
03 보고 있는데 VS2022로 뭘 어째야 하는건지 감이 안와요... 인터페이스가 너무 달라요
인터페이스가 너무 다른거 같은데.. ㅠㅠ특히 index.cshtml에서 완전 막히네요환불받고 싶은데 혹시나 강의자료가 이 파일일까봐 다운받았는데.. ㅠㅠ 다운받아서 환불도 안되고 넘하네요
-
해결됨[C#/.NET 8.0]어서와, Blazor Server는 처음이지?
화면 갱신
제가 윈폼만 하다가 웹으로 개발할 일이 있다보니 Blazor 수업을 수강하는데 수업 내용이 전체적으로 사수한테 배우는 느낌이어서 좋네요. ㅎㅎ궁금한게 있어서 질문하나 드립니다.메인 서버에서 여러 디바이스의 상태를 웹페이지에 계속 업데이트 해야 하는데 클라이언트가 여러명이 됩니다.데이타 갱신시 서버에서 갱신되는 데이타를 프론트에서 갱신되게 하는 방법이 대략 어떻게 되나요?
-
미해결[C#/.NET 8.0]어서와, Blazor Server는 처음이지?
ASP.NET Core SignalR을 사용하는 방식의 장점이 있나요?
blazor server 방식은 기존의 asp.net 웹서버프로그래밍과 동일한 방식인 것으로 보입니다.기존의 웹서버프로그래밍을 공부할때는 http 프로토콜을 이용해서 request, response를 하므로, stateless, 헤더 정보, get, post 등에 대해서 학습을 했었던 것으로 기억합니다. 그때의 방식과 내부적으로 SignalR을 사용하는 소켓방식과의 차이점을 알고 싶습니다.클라이언트의 요청이 서버에 request로 전달이 되고, 서버가 실행되어서 렌더링한 결과를, 클라이언트에게 response 해주는 것이 아닌가요? 아...근데 새로 페이지를 전부 그리는 것이 아니고, 해당 변경부분만 렌더링해서 response를 해주는 것으로 아는데...소켓과 http 프로토콜과의 역할을 구분하여 알고 싶습니다.
-
해결됨[C#/.NET 8.0]어서와, Blazor Server는 처음이지?
Blazor web app 생성할때 질문있습니다.
렌더링이 어디서 일어나느냐에 따라서 블레이저 서버와 웹어셈블리로 프로젝트를 구분하는데,.net 8.0 부터 blazor web app 이 추가된 것이라고 설명해주셨는데요...프로젝트 생성시, 샘플로 있던 페이지 중에 counter 증가되는 것만 클라이언트쪽에 생성되고, 나머지 페이지들은 서버쪽에 생성되었습니다. 클라이언트 쪽에는 DB 연결과 상관없는 기존의 자바스크립트로 동작하는 것이 주로 오는 것이고,서버 쪽에는 DB 사용하는 페이지들이 존재하는 것인지 궁금합니다. 즉, 어떤 것을 기준으로 클라이언트와 서버를 나누는 것인지 궁금합니다. blazor WASM을 선택해도, 페이지에 연결되는 DB 처리를 위해서는 API로 서버를 호출해서 결과를 받아와서 바인딩을 해준다면...blazor Server로 작성해서 해당 부분을 바인딩하는 것과 차이가 어떤 것인지 궁금합니다.또한, 실제 실무에서는 어떤 방식이 더 선호되는지 궁금합니다.
-
해결됨[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
클라이언트에서 데이터 변조 할 경우
패킷 id가 변조될 경우의 대응은 없는 상태인가요?
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
언리얼엔진과의 비교
안녕하세요 강사님.흥미롭게 강의를 듣는 중인데 언리얼 엔진과 가끔 비교해주실 때가 있더라구요.듣다보면 유니티보다 더 복잡하다는 느낌을 지울수가 없는데 그럼에도 불구하고 언리얼 엔진이 유니티보다 조금 더 주목을 받는 이유가 무엇인지 궁금합니다. 게임 시장에서도 언리얼 엔진에 좀 더 주목하는 분위기라고 하시는 분들도 있어서요.이미 검색은 해보았지만 실무를 해보신 입장에서의 답이 궁금해 고민하다가 질문합니다. 언리얼 엔진이 유니티에 비해 엔진이 좀 무겁고 구현 폭이 넓은 그런 느낌이라서 많이들 사용하는 건가요? 좋은 강의 감사드립니다.
-
해결됨[C#/.NET 8.0]어서와, Blazor Server는 처음이지?
솔루션 배포(게시) 부분에서 질문있습니다.
작성된 솔루션 파일을 게시할 때, 콘솔 exe가 실행되면서 어떻게 렌더링이 되고, 실행이 되는지 잘 모르겠습니다.즉, Blazor 서버 앱의 실행 방법과 게시할 때 포함시켜야 하는 범위를 알고 싶습니다.솔루션에서 게시를 선택해서 로컬에 생성된 폴더를 보면, IIS 에서부터의 실행방법을 잘 모르겠습니다. 게시할 때 WASM 방식과 서버방식의 차이를 이해하기 쉽게 다시한번 설명해주셨으면 합니다.감사합니다.
-
해결됨[C#/.NET 8.0]어서와, Blazor Server는 처음이지?
razor 문법에서의 @표기
강의 중의 코드인데요,.razor 파일에서 C# 코드를 사용할때 @를 사용하는데,@Click = "메서드명" Click = "@메서드명"Click = "메서드명"@bind-Value="@value"등등 모든 방법을 다 허용하는 것인지, 권장하는 방법은 어떤 것인지 알고 싶습니다. Orientation, Data 은 RadizenStack 클래스의 속성인거 같은데...@bind-Value 는 어떤 것으로 정의된 건가요?기본적으로 정의된 항목 PageTitle 같은 것들은 어디에 몇가지로 정의된 기본 클래스인지도 궁금합니다.전반적으로 Blazor 페이지에 대한 구조와 기본 틀에 대한 설명이나 자료를 조금 더 가르쳐주셨으면 좋겠습니다.
-
해결됨[C#/.NET 8.0]어서와, Blazor Server는 처음이지?
Grid 컴포넌트 사용에 대해서 질문있습니다.
asp.net 의 WebForm 에서도 DataGrid, DataList, Repeator 등이 있었습니다. DataGrid, DataList 는 기능이 많아 보이지만, 기능이 많은 것만큼 렌더링 된 데이터의 사이즈가 너무 커져서 실무에서는 속도 문제로 결국 html 태그를 적극 활용하면서 Repeator를 사용했었습니다.혹시 QuickGrid , RadzenGrid 등도 그런 문제가 발생하는 것은 아닐까 해서요...샘플로 작성되는 weather 페이지처럼 html 태그가 결국 사용되는게 아닐까 싶은데요...결국은 모든 데이터를 다 조회해서 갖고 있는게 아니라, 해당 페이지에 대한 데이터만 갖고, 페이징 네비게이션 부분은 별도로 코딩하게 된다면...그리드의 정렬, 필터 기능은 사용 못하는게 아닐까 싶습니다.혹시 속도 비교를 해 놓은 것이 있는지 궁금합니다.제가 아직 WASM 방식과 서버 방식을 잘 이해를 못하고 있는데요,제가 기존에 했었던 방식(asp.net webform, mvc)은 서버 방식이었을 것으로 이해하고 있습니다.WASM 방식이 된다면 Grid 사용이 달라지는 건가요???
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
args.BytesTransferred가 0인 이유가 뭘까요
강의 잘 보고 있습니다. 하나하나 다 따라해봤는데 전 강의 까지는 문제가 없었지만이상하게 이번강의 따라해보니 유니티와 서버의 연결은 잘된듯 한데 유저가 2명 이상이면 Disconnect를 호출하더군요 이유를 찾아보니까 OnRecvCompleted에서 첫 if문에 있는 args.BytesTransferred 가 계속 0인데 이는 서버측이든 클라측이든 0으로 되어있었습니다. 혹시 코드가 잘못된지 확인해봐도 모르겠어서 강사님께서 올려주신 코드로 서버와 클라를 연결 시켜봐도 똑같이 BytesTransferred가 0이어서 문제가 생기는데 왜 이러는지 알 수 있을까요?? 기기에 따라 다른가요
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part2: 자료구조와 알고리즘
연결리스트 Remove 관련 질문입니다.
public void Remove(Room<T> room) { if (room == Head) { Head = Head.Next; Head.Prev = null; } else if (room == Tail) { Tail = Tail.Prev; Tail.Next = null; } else { room.Prev.Next = room.Next; room.Next.Prev = room.Prev; } Count--; } 제가 구현한 Remove는 이렇습니다.강의에서 room.Prev 와 room.Next 의 null 유무를 체크하던데, 여기서 이해가 안 되어 질문드립니다. 1, 2, 3, 4, 5의 경우라고 가정해보면1은 head, 5는 tail, 이를 삭제하려고 할 경우 앞의 두 조건문에서 걸립니다.나머지의 2, 3, 4 를 가정해보면 이 노드들은 필히 Next 와 Prev가 존재합니다. AddLast를 보더라도 Tail의 next와 newRoom의 Prev를 서로 연결하는 부분이 존재하니 말이죠. 그러니 이를 굳이 조건절에서 검증해야 할 필요가 있나?가 궁금합니다. 또 head, tail 조건에서도 Head.Prev = null, Tail.Next = null 을 하지 않으면 remove의 조건을 정확히 충족하지 못한다고 생각합니다. 어찌됐든 접근할 수 없도록 만드는 게 이론적으로 삭제와도 같으니깐요. null 처리를 안 할 경우 만약 Head.Prev를 하게 되면 삭제했던 노드를 다시 호출할 수 있게 된다고 봅니다.
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
소켓과 세션에 대해 질문 드립니다.
안녕하세요 루키스님!강의 잘 듣고 있습니다. 세션과 소켓의 관계에 대해 궁금한게 생겼습니다.비유로 인해 오해가 생길까 지웠습니다.Connector를 쓰기 전 까지는 더미 클라이언트에 세션을 쓰지 않아 서버와 클라이언트가 서버에서 발급한 세션을 통해 정보를 공유한다고 생각했습니다.마치 실 전화기 처럼 말이죠.클라 (소켓) ---------------세션--------------(소켓) 서버 근데, 커넥터라는 개념이 들어오고 다시 흐름을 살펴보니 서버도 서버의 세션을 사용하고, 클라도 클라의 세션을 사용하니 위의 비유와는 잘 맞지 않아 다시 생각해봤는데 이해한 바가 맞는지 봐주셨으면 합니다.소켓 : 유심칩세션 : 스마트폰(abstract 를 구현해서 어떻게 행동할지 정의했기 때문에 클라는 클라 전용 스마트폰, 서버는 서버 전용 스마트 폰을 가지고 있다.) 클라 (소켓 + 세션) ------------------- 서버(소켓 + 세션)
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part1: C# 기초 프로그래밍 입문
Public MonsterType GetMonsterType() {return type;}은 생략해도 문제없는건가요?
public PlayerType GetPlayerType() { return type; }public MonsterType GetMonsterType() { return type; }해당 메소드는 수업에서 딱히 선언 후 사용 되지 않았기 때문에생략해도 문제는 없는 걸까요? 혹시 사용 한다면 어떤식으로 사용이 되는걸까요?
-
해결됨[켠김에 출시까지] 유니티 방치형 키우기 게임 (M1 + C1)
5월 부터는 서버를 구현한다고 되어있는데!
안녕하세요 5월부터 시작하는 수업에서BM (광고, 결제) 시스템과 서버 기본기 구현을 배우게 되는것으로 알고있는데요!이과정에서 c#과 AWS를 사용하여 직접 서버를 구축하는 방법을 배우는것인지아니면 파이어베이스나 뒤끝같은 관리형 서비스를 사용하는 방법을 배우는건지 궁금합니다 !
-
해결됨C# TCP/IP 소켓 프로그래밍
예제소스 제공 원합니다.
안녕하세요. 강의에서 타이핑 하신 Example Source를 제공받을 수 있을까요?
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part1: C# 기초 프로그래밍 입문
기능을 넣어봤습니다!
static void Fight(ref Player player, ref Monster monster) { while(true) { //플레이어가 몬스터 공격 monster.hp -= player.attack; if(monster.hp <=0) { Console.WriteLine("승리했습니다."); Console.WriteLine($"남은체력 : {player.hp}"); break; } //몬스터 공격 player.hp -= monster.attack; if (player.hp <= 0) { Console.WriteLine("패배했습니다."); // break; RestartGame(ref player); } } } // 새로 추가한 부분 static void RestartGame(ref Player player) { if( player.hp <= 0) { Console.WriteLine("[3] 게임을 다시 시작하시겠습니까?"); string input = Console.ReadLine(); if(input == "3") { player.hp = 100; EnterGame(ref player); } } }RestartGame함수를 생성해서, Hp가 0이 되었을 때 다시 시작하도록 하는 스크립트를 추가해서 실행 할 때 작동은 되는데, 어색한 부분이나 잘못 사용된 부분이 있을까요?
-
미해결[켠김에 출시까지] 유니티 방치형 키우기 게임 (M1 + C1)
하반기 MMO 서버 개발
하반기 MMO 서버 개발은 c# or c++ 뭐로 개발할 예정이신가요?
-
미해결[켠김에 출시까지] 유니티 방치형 키우기 게임 (M1 + C1)
UIManager의 SetCanvers() 부분에서
안녕하세요..UIManager 의 SetCanvas 에서public void SetCanvas(GameObject go, bool sort = true, int sortOrder = 0) { Canvas canvas = Util.GetOrAddComponent<Canvas>(go); if (canvas == null) { canvas.renderMode = RenderMode.ScreenSpaceOverlay; canvas.overrideSorting = true; }"if (canvas == null)" 부분이 "canvas != null" 이 되어야 될 것 같은데 설명 부탁드립니다.
-
해결됨[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
MakePacket<T> 함수 질문있습니다.
PacketManager에서 MakePacket<T>가 호출되면 T 객체를 생성해서 처리하는데, 혹시 해당 함수가 호출될때마다 객체를 생성하는게 아니라 Dictionary에 Register함수로 등록할 때 객체를 생성해서 Dictionary에 등록해주고 그 객체 하나로만 버퍼를 받아서 처리하면 문제가 발생하나요?