묻고 답해요
169만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part1: C# 기초 프로그래밍 입문
Sort 오름차순, 내림차순
대리자로 소트를 오름차순, 내림차순을 쉽게 구현할 수 있다고 하셨는데namespace 4.델리게이트{internal class Program{delegate void Sort(int[] arr);static void MinSort(int[] arr){int id;for(int i = 0; i < arr.Length - 1; i++){id = i;for (int j = i + 1; j < arr.Length; j++){if (arr[j] < arr[id])id = j;}int temp = arr[id];arr[id] = arr[i];arr[i] = temp;}}static void MaxSort(int[] arr){int id;for (int i = 0; i < arr.Length - 1; i++){id = i;for (int j = i + 1; j < arr.Length; j++){if (arr[j] > arr[id])id = j;}int temp = arr[id];arr[id] = arr[i];arr[i] = temp;}}static void PrintArr(int[] arr){foreach (int a in arr)Console.Write(a + " ");Console.WriteLine();}static void Main(string[] args){// delegate (대리자) 사용 빈도 높음 주의int[] arr = new int[] { 20, 10, 40, 50, 15 };Sort[] sort = new Sort[] { MaxSort, MinSort };string str = Console.ReadLine();switch (str){case "max":sort[0](arr);break;case "min":sort[1](arr);break;}PrintArr(arr);}}} 혹시 이것도 그 편한 방법에 포함되는 코드라고 할 수 있을까요?그리고 Sort sort = MaxSort; sort += MinSort;이렇게 두개의 함수를 추가한다하면제가 위에서 보낸 코드 처럼 sort[0]으로 접근이 안되는데 어떻게 접근해야할까요?
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part1: C# 기초 프로그래밍 입문
질문 있습니다.
제네릭은 c++ 템플릿이랑 같다고 생각하면 될까요?
-
미해결[켠김에 출시까지] 유니티 방치형 키우기 게임 (M1 + C1)
CoSendWebRequest 관련 문의
WebManager의 아래 코루틴 CoSendWebRequest에서yield return uwr.SendWebRequest(); 부분을 통해서 request를 보내는 것까지는 이해를 했는데,제가 알고있기로 코루틴에서 yield return 을 호출할 경우, 다음 프레임에서 코드가 이어서 실행되는 것으로 알고있는데요.response를 언제 받을 지 모르는 상황이니까 별도로 response를 받았을때의 콜백을 입력해서 처리하는 것이 아닌가 생각했었는데, 실제 코드에서는 아래와 같이 바로 이어서 response를 받았을 때 처리되는 부분을 입력하고 있고, 또 이게 제대로 작동을 하니 잘 이해가 안됩니다.아래와 같은 경우라면.. 다음 프레임 이전에 무조건 response가 온다는 확신이 있다는 것으로 이해가 되는데, 어떻게 이 부분을 확신할 수 있는건가요? using (UnityWebRequest uwr = new UnityWebRequest(sendUrl, method)) { uwr.uploadHandler = new UploadHandlerRaw(jsonBytes); uwr.downloadHandler = new DownloadHandlerBuffer(); uwr.certificateHandler = new CertificateWhore(); uwr.SetRequestHeader("Content-Type", "application/json"); yield return uwr.SendWebRequest(); if (uwr.result == UnityWebRequest.Result.ConnectionError) { Debug.Log($"CoSendWebRequest Failed : {uwr.error}"); } else { T resObj = JsonUtility.FromJson<T>(uwr.downloadHandler.text); res.Invoke(resObj); } }
-
미해결[켠김에 출시까지] 유니티 방치형 키우기 게임 (M1 + C1)
과정 중에 사운드 리소스 추가는 없나요?
과정 중에 사운드 리소스 추가는 없나요?
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part1: C# 기초 프로그래밍 입문
팩토리얼 문제
static int Factorial (int n) { return n * Factorial(n-1); } static void Main(string [] args) { int ret = Factorial(5);Console.WriteLine(ret);} Factorial(5)가 int ret으로 할당되었고, Factorial(n)이므로 n이 5로 삽입되었다는걸까요?static int Factorial 구문에서 반환값이 return n * Factorial(n-1); 이렇게 표기되어 있어서 n-1 이므로 Factorial(5)가 나오기 위해서는 n에 6이 할당되어야 하는게 아닌가요? 각각 static 구문의 의미랑 로직이 어렵네요핳 모르겠습니다 도와주세영 .. 🥲
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part1: C# 기초 프로그래밍 입문
Sort함수 질문있습니다.
안녕하세요.선생님은 이중 포문에j의 초기값을 i로 두었는데요 i + 1로 두는게 더 효율적이지 않나요? minindex의 값은 i일테고 i다음 인덱스부터 비교하는 건데j가 i의 인덱스를 갖고 있다면arr[i] < arr[j(즉 i)] 같은걸 비교하니까 비효율적인 루틴하나가 더 추가된 게 아닌가 싶어서요!static void SortArr(int[] arr){ int minindex = 0; for (int i = 0; i < arr.Length; i++) { minindex = i; for (int j = i + 1; j < arr.Length - 1; j++) { if (arr[j] < arr[minindex]) minindex = j; } int temp = arr[i]; arr[i] = arr[minindex]; arr[minindex] = temp; }}저는 이렇게 구현해봤는데 선생님이랑 다르니까 좀 불안해지는 느낌이더라구요또 j가 i+1이라면 arr의 길이 -1만큼 조건식을 둬도 되는 거지요?
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part1: C# 기초 프로그래밍 입문
다형성 함수 질문 있습니다.
안녕하세요.SuperKnight 객체에 Player를 상속받고 있는 Knight객체를 상속 받았는데, override를 통해 SuperKnight 객체에도 Move함수를 구현했습니다.class SuperKnight : Knight // 이중 상속{ public override void Move() { base.Move(); Console.WriteLine("SuperKnight 이동!"); }} 그후 main에서 SuperKnight superKnight = new SuperKnight(); superKnight.Move();Move 함수 호출 시 최상위 부모(Player), 부모(Knight), 자식(SuperKnight)의 Move함수가 순차적으로 콜 되던군요.(아래처럼)Player 이동!Knight 이동!SuperKnight 이동!이게 맞는 거죠?
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part1: C# 기초 프로그래밍 입문
질문이 있습니다.
안녕하세요.C# 기본 문법 클래스 형식 변환에서EnterGame함수를 통해 인자로 들어오는 player를 Mage로 형변환하여 Mage타입만 들고 있는 필드(int mp)를 수정하는 걸 보여주셨는데, 이렇게 되면 knight 타입의 함수도 따로 만들고, 다른 직업도 따로 만들어야 하는 거 아닌가요?저 함수 하나로 모든 직업을 커버하는 방법은 어떤게 있을까요?
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
딕셔너리 new 로 생성하는 것에 대한 에러?
안녕하세요유니티짱 폴더를 강의와 같이 정리하다 보니, 위 경고 메시지가 떴습니다. 그런데 해당 위치는 Dictionary 등 유니티 모노비헤비어 에서 상속받은 게 아닌데... 왜 뜨는 걸까요? 그것도 유니티짱 경로 정리 하다가 그런 경고가 갑자기 뜨는 이유를 알 수가 없습니다.
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part1: C# 기초 프로그래밍 입문
섹션2 연습문제 질문입니다.
연습문제중 팩토리얼 구현에 있어서 질문 드립니다. static int Factorial(int a){for (int i = a - 1; i >= 1; i--){a *= i;}return a;}static void Main(string[] args){int ret = Factorial(3);Console.WriteLine(ret);} 이 구현도 괜찮을까요?
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part7: MMO 컨텐츠 구현 (Unity + C# 서버 연동 기초)
MMO 컨텐츠 구현의 MapTool에서 Util클래스 정보
이전 강의를 구매를 안해서 그런데, 만들어둔 Util클래스에 대한 코드는 어디서 확인할 수 있나요? 강의자료탭이 안보여서요.
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
Mac OS 쓰레드풀 사용 문제 질문드립니다. (11:12)
위쪽에도 같은 맥북 질문이 있는것으로 확인 하였는데 해결방법을 모르겠어서 질문드립니다. 쓰레드가 Console.WriteLine까지는 진입을 하지만 출력이 되지는 않는 문제가 발생합니다.또한 중간에 쓰레드가 전부 사라져버리고 디버깅이 더이상 진행되지 않는 문제가 발생합니다.
-
해결됨[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
PacketSession에서 buffer.Count와 dataSize의 비교
안녕하세요 PacketSession에서 if (buffer.Count < dataSize) break;이 부분의 코드가 왜 필요한지에 대해서 의문이 생겨 질물 남깁니다 예를들어 100바이트 크기의 버퍼가 OnRecv매개변수로 들어왔고 해당 100 바이트가 5가지 패킷의 정보를 들고 있다고 했을 때하나의 패킷을 처리할 때 마다 해당 크기의 dataSize만큼 buffer크기(Count)가 갱신 될텐데 그렇게 된다면 위의 조건에는 들어오게 될 일이 전혀 없게 되는거 아닌가요?
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part1: C# 기초 프로그래밍 입문
안녕하세요~서버에 대해 질문이 있습니다.
안녕하세요. 게임 기획자로 일하다가 게임 서버 개발자가 되고 싶어서 공부중입니다.c++, c# 게임 서버를 만드는게 목표입니다.선생님의 강의엔 유니티와 언리얼과 연동하여 서버를 만들고 계신데, 게임 엔진과 연동을 하지 않는다는 가정 하에 서버 강의를 들어도 무관한지 여쭙고 싶습니다.저는 게임 엔진 같은 클라이언트 부분은 포폴로 넣지 않고 콘솔 혹은 테스트 클라이언트나 포스트맨을 이용할 예정이라서요!
-
미해결[켠김에 출시까지] 유니티 방치형 키우기 게임 (M1 + C1)
Skill 관련 클래스가 빠져 있는 것 같습니다.
8주차 소스에 스킬 관련 클래스 들이 빠져 있는 것 같습니다.ColdSpread, AreaAirbone, LionShout,FireSword,MultiFireSword 등... 프리팹도 같이요.혹시 추가해 주실 수 있으실까요?
-
미해결[켠김에 출시까지] 유니티 방치형 키우기 게임 (M1 + C1)
보충강의 해주시면 안될까요 ㅠㅠ
강의보다가 어렵고 헷갈린거 있으면 파트 3 보시라고해서 보면서 공부하고있습니다 그럼에도 ..복잡하고 이해하기어렵습니다 혹시 보충강의 만들어 주시면 안될까요 어렵고 흡수가 잘안될때 어떻게 하면 효율적으로 공부할수있나요 저만 못따라가는거 같고 속상합니다 게임 너무 만들고싶습니다 도와주시면 감사하겠습니다
-
미해결[켠김에 출시까지] 유니티 방치형 키우기 게임 (M1 + C1)
Addressable 스프라이트 파일 가져오기
현재 프로젝트에서는 스프라이트 single 타입으로 하나씩 가져오면서 사용중인데만약 스프라이트들이 하나의 파일로 묶여있을땐 어떻게 가져오고 사용법은 어떻게 해야하나요?
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part7: MMO 컨텐츠 구현 (Unity + C# 서버 연동 기초)
GameRoom 질문드립니다.
안녕하세요. 강의 잘듣고있습니다.! GameRoom을 하나의 스레드로 jobqueue를 사용해서 공유자원을 관리 하면 lock에서는 자유롭지만 하나의 스레드인 만큼 많은 처리를 해야할 경우 딜레이가 생길수도 있을거라고 생각하는데 lock을 타이트하게 거는 방법보다 하나의 스레드에서 처리하는게 속도가 더 빠른가요?
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
NavMeshAgent컴포넌트를 빼면 플레이어가 벽에서 어색하지 않나요?
NavMeshAgent의 Move함수를 사용하지 않는 이동 로직을 사용하게 되면 벽에 닿아서 움직을 때 슬라이딩을 하지 않아 어색한 부분이 있는데 이 부분도 같이 해결할 수 있는 방법이 있을까요?
-
미해결[켠김에 출시까지] 유니티 방치형 키우기 게임 (M1 + C1)
DataManager 질문
안녕하세요. 제가 인터페이스를 활용하는 방법을 정확히 몰라서 질문 드립니다.DataManager에서 아래 ILoader라는 인터페이스를 통해 MakeDict함수를 정의한 이유가 따로 있나요?public interface ILoader<Key, Value>{ Dictionary<Key, Value> MakeDict();}보통 어떤 경우에 인터페이스를 사용하시는지도 알고 싶습니다.