44,000원
다른 수강생들이 자주 물어보는 질문이 궁금하신가요?
- 해결됨[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part1: C# 기초 프로그래밍 입문
Exe가 없습니다
7분8초쯤에 나오는 exe파일이 없는데..없어도 되는건가요.. 선생님 파일탐색기에 나오는 나머지 파일들은 다 나오는데 exe는 없어요ㅜㅜ 그리고 저 파일 들어갈때 bin파일 들어가고 debud 들어가고 netcoreapp3.1이라는 파일이 하나 더 잌ㅅ어요
- 해결됨[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part1: C# 기초 프로그래밍 입문
2진수와 16진수 표기 방식에 대한 질문.
0b01, 0x0f 등 개념은 이해를 했는데요. 왜 0일 때 2진수에서는 0b0 이 아닌, 0b00을 써야하고, 16진수에서는 0x0이 아닌, 0x00을 써야하는지 궁금합니다. 만약 이게 0을 표현하는 C언어의 규칙이라고 하면 10진수를 사용할 때에도 0이 아닌 00을 사용하나요?
- 미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part1: C# 기초 프로그래밍 입문
get, set으로 은닉성을 챙길 수 있다는 말
앞서 강의에서 은닉성을 지키기 위해 private int variable1 public int getVariable1() { return variable1; } public int setVariable1(int hp) { this.variable1 = hp; } 로 사용을 하여 클래스 내부의 민감한 변수를 아무나 건드리는 걸 방지한다고 이해했습니다. 그런데 public int Hp { get; set; } 이렇게 사용을 하면 민감한 변수라고 정했던 Hp 변수를 누구나 변경또는 사용할 수 있지 않나요? 강의에서 말씀하셨던 디버깅에 용이하다는 건 알겠으나, 은닉성이 지켜진단 말이 잘 이해가 가질 않네요 ㅠㅠ 도움주시면 감사하겠습니다.
- 해결됨[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part1: C# 기초 프로그래밍 입문
클래스의 선언범위가 궁금합니다.
안녕하세요 좋은 강의 감사합니다 ^^. { { } } 이것처럼 중괄호가 두개 있을 때 가장 안쪽의 중괄호에서 생성한 클래스는 그 바깥에서 참조가 불가능했는데요, 이 때 개념이 모호해서 질문드립니다. 클래스의 실제값은 힙에 존재하고 이를 참조로 접근한다고 알고 있습니다. 그리고 c#의 경우 힙은 컴파일러가 알아서 다룬다라는 개념으로 알고 있는데요, 위의 상황처럼 중괄호 안에 지역적으로? 선언된 클래스는 바로 할당이 해제되기 때문에 바깥 중괄호에서 접근할 수 없는 건가요?
- 해결됨[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part1: C# 기초 프로그래밍 입문
Game 클래스와 game 객체를 만드는 이유가 궁금합니다
삭제된 글입니다
- 해결됨[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part1: C# 기초 프로그래밍 입문
TextRPG2는 객체 덕분에 구조는 간단한데 어렵네요
RPG1에서 함수를 주구장창 만들어서 사용했던 방식은 함수 관계가 복잡했지만 직관적으로 이해하기 편했습니다. 반면에 이번 RPG2는 '객체'를 사용해서 코드의 구조는 간편해졌지만, "이렇게 객체를 만들어서 쓴다고?"라고 생각되는 부분이 솔직히 많았습니다. 특히 '게임' 클래스를 만드는 부분은 너무나도 어색했습니다. 혹시 클래스를 만들고 객체를 사용하는 방식에 익숙해질 수 있는 방법이 있을까요??
- 해결됨[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part1: C# 기초 프로그래밍 입문
ref 에 대한 이해 부족이 있어 질문 드립니다.
자료구조 맛보기 -연습문제 staic void Sort(int[] scores)에 관하여 영상을 보기 전 저는 해당 메소드가 원본 배열을 복사한다고 생각하여 swap을 해주는 과정에서 ref를 사용했습니다. 그 후 sort 메소드에서 scores 출력, 메인메소드에서 sort()후 scores 출력을 해봤는데 정상적으로 sort가 되더군요. 문제는 테스트로 ref를 제거해봤을 때 sort() 메소드 안에서 출력한 scores는 정렬이 되지만 원본인 메인메소드의 scores 는 정렬이 되지 않을 거란 생각과 달리 같이 정렬이 되어 있더군요. ref에 대한 이해가 부족하다고 생각되어 이 문제에 관한 조언을 듣고 싶습니다. (항상 빠르고 친절한 답변 감사합니다!) - sort 코드 static public void Sort(int[] scores) // 작은 순 정렬 { //가장 간단한 방법 //가장 큰 거부터 뒤로 하나 씩 옮기고 맨 뒤을 제외하고 다시 반복 for (int i = 0; i < scores.Length; i++) { for(int j = 0; j <scores.Length-1; j++ ) if (scores[j] > scores[j + 1]) { // Swap(ref scores[j], ref scores[j + 1]); int temp = scores[j]; scores[j] = scores[j + 1]; scores[j + 1] = temp; } } foreach (int score in scores) { Console.WriteLine(score); } } //static void Swap(ref int a, ref int b) //{ // int temp = a; // a = b; // b = temp; //} main static void Main(string[] args) { //배열 연습문제 int[] scores = new int[5] { 10, 30, 50, 40, 20 }; Program.GetHighestScore(scores); Program.GetAverageScore(scores); Program.GetIndexOf(scores, 50); Program.Sort(scores); foreach (int score in scores) { Console.WriteLine(score); } }
- 미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part1: C# 기초 프로그래밍 입문
복사와 참조
강사님 안녕하세요. c++에서는 매개변수를 참조(포인터)냐 지역으로 어떻게 처리하냐에 따라서 출력결과 값이 달라지는데 c#에서는 클래스를 동적할당 하기만 하면 매개변수로 들어갈시 컴파일러가 알아서 매개변수를 참조하는 용도로 변경하나요? //c++코드 class Knight { public: int hp; }; void Kill_knight1(Knight knight) { knight.hp = 0; } void Kill_knight2(Knight& knight) { knight.hp = 0; } void Kill_knight3(Knight* knight) { knight->hp = 0; } int main() { Knight knight; knight.hp = 100; Kill_knight1(knight); cout << "지역 처리" << endl; cout << knight.hp << endl; Kill_knight2(knight); cout << "참조 처리" << endl; cout << knight.hp << endl; Knight* knight_alloc = new Knight(); Kill_knight3(knight_alloc); cout<<"포인터처리" <<endl; cout << knight_alloc->hp << endl; return 0; }
- 미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part1: C# 기초 프로그래밍 입문
할당
강사님 안녕하세요. 객체 지향 첫시간에서 Knight를 이용하는 내용중에.. 지역 객체로 선언해서 컴파일 하니까 할당되지 않은 지역변수를 사용했다고 하는데요. c++에서는 지역객체로 선언해도 문제가 없는데 c#에서는 지역변수로 객체 사용은 못하는건가요?
- 해결됨[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part1: C# 기초 프로그래밍 입문
Process() 메소드 관련 문의입니다.
영상을 들으며 공부할 때 항상 잠시 멈춰두고 코드를 작성하고 영상을 듣곤 합니다. 그 과정에서 제가 생각했던 코드와 작은 차이가 생겨 질문드립니다. ProcessLobby() 나 ProcessTown() 코드를 작성하는 과정에서 _mode를 변경하는 부분은 이해했으나 모드만 변경해도 자동으로 다시 Process()가 돌아가지는 않을거라 생각하여 모드 변경 다음 줄에 Process(); 를 추가하여 작성했습니다. 그런데 강사님 영상에서는 그러한 과정 대신 while()문을 이용하여 반복시행하는 것으로 문제를 해결하는 과정을 봤습니다. 이번 강의 외에도 모든 강의에서 while(true) 문을 사용해서 코드를 작성하는 것을 보았는데 개발에 있어서 코드작성할 때 while() 안에서 작동되는 것을 고려하여 개발하는 것이 좋을까요?
- 해결됨[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part1: C# 기초 프로그래밍 입문
생성자 관련 질문입니다.
이번 코드에서 player나 monster 생성자 옆에 :base(Creature type) 을 써주는 이유가 무엇인가요? 플레이어의 경우에는 플레이어의 생성자의 내용을 그대로 자식이 쓰게 하기 위해서 :base(PlayerType.직업) 이런 식으로 해줬던것 같은데 플레이어의 상속자에는 왜 부모인 크리쳐의 상속자를 붙여준 것인지 알고 싶습니다. java에서 부모의 생성자를 반드시 생성해야 해서 super() 등을 사용하던 것과 비슷한 이유로 자식 클래스 생성자에 부모 생성자를 붙여줘야 하는 건가요? 오크를 생성한다고 치면 몬스터의 생성까지는 마쳐졌지만 크리쳐의 생성자를 안 붙이면 그 부모인 크리쳐에서 타입이 정해지지 않아서 오류가 생긴다는 등에 문제가 생기는 걸까요?
- 해결됨[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part1: C# 기초 프로그래밍 입문
ref에 대해서 질문이 있습니다.
매개변수나 함수를 호출할때 변수앞에 ref를 붙이는데 이것이 c언어에서 포인터와 유사한 것 같습니다. 궁금한 것은 static void AddOne(ref int num) { num+=1; } 함수 정의하고 int a =0; AddOne(ref a); 함수 호출하면 C언어에서 주소값을 전달하듯이 a의 참조값을 매개변수 num에 전달한다고 이해를 했습니다. 여기서 헷갈리는 것은 그렇다면 매개변수 ref int num에서 num은 참조값을 다루는 참조형 변수라고 생각해야 할까요?(마치 포인터처럼요) 하지만 그렇다면 바로 다음에 나오는 num+=1;이라는 문장은 값형 변수처럼 쓰이는 것 같은데, 이 부분이 이해가 안됩니다.
- 해결됨[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part1: C# 기초 프로그래밍 입문
게임업계 현장에서 선호하는 언어는 C#과 C++ 중 어느 것인가요?
현재 강의를 통해 C#을 배우고 있는데 Rookies님의 추후 예정 강의에서는 C++을 다룰 예정이며 취업 목적의 강의를 진행하신다는 글을 봤습니다. 취업 목적으로 하려면 C#보다는 C++을 먼저 배워야 할까요? 아니면 단순히 엔진에 따른 언어차이라서 업계 선호의 차이가 없나요?
- 해결됨[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part1: C# 기초 프로그래밍 입문
Deep capy 관련 문의.
C# 하고 java가 다르다는 건 아는데 이 개념 관해서 문의하고 싶습니다. this.hp 같이 명확하게 어떤 knight의 hp를 가져와 써라 안 해도 상관이 없는 문제일까요? 혹시나 싶어 this.knight.hp를 쓰니 오류가 생겨 문의합니다.
- 해결됨[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part1: C# 기초 프로그래밍 입문
5분 50초 부근에 책에 있는 순서라고 하셨는데
혹시 참고하시는 교재가 있다면 알 수 있을까요?? part1 C#강의만이 아니라 다른 part에서도 참고 교재가 있다면 알고 싶습니다
- 미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part1: C# 기초 프로그래밍 입문
out을 사용하는 이유
안녕하세요! 7분 25초부터 나오는 설명이 잘 이해가 되지 않아서 질문드립니다. 영상에서 말하는 반환하고 싶은 값이 무엇인지 모르겠어서 이해가 되지 않는 것 같습니다. 원본에 반환하고 싶은 값을 넣어주고자 하면 AddOne 메소드 안에 원하는 대로 식 작성하면 될텐데 왜 아무것도 안하면 문제 아닌 문제가 된다고 하는 건가요? ref는 메소드 안에서 꼭 수정되거나 사용되어야 하는 건 아니라고 알고 있는데 영상에서 나온 out 의 사용 원인?(반환값 여러개일 때 제외)을 잘 모르겠습니다.
- 미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part1: C# 기초 프로그래밍 입문
가위바위보 문제풀이(영상과 다른 버젼)
제가 풀었던 방법인데 영상 보시며 공부하시는 분 참고하시라고 올려봐요. // 승리 무승부 패배 //1. 이기는 경우 -choice == (aiChoice+1)%3 (나와 컴퓨터의 숫자가 2차이면 내가 이김. 3이 넘어가면 %을 이용해 0으로 초기화) //2. 지는 경우 -(choice+1)%3 == aiChoice (1차이면 컴퓨터가 이김.) //3. 비기는 경우-choice == aiChoice (같으면 무승부) if (choice == (aiChoice + 1) % 3) Console.WriteLine("당신이 이겼습니다."); else if ((choice + 1) % 3 == aiChoice) Console.WriteLine("컴퓨터가 이겼습니다."); else { Console.WriteLine("무승부입니다."); }
- 해결됨[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part1: C# 기초 프로그래밍 입문
정수 종류별 바이트 차이 관련 질문입니다.
실제 저장하는 값이 1로 같더라도 유형에 따라 차지하는 메모리에 차이가 있나요? int면 4바이트만 차지하는데 long으로 하면 8바이트 만큼의 메모리가 필요없어도 다 차지하는지 궁금힙니다.
- 해결됨[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part1: C# 기초 프로그래밍 입문
13분 40초 부근에 long 타입의 변수는 id계열에 사용한다고 하셨는데
id계열이 무엇인지 알 수 있을까요?
- 미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part1: C# 기초 프로그래밍 입문
7분 35초 이후 잠시 스킵이 된거같습니다.
IsDead함수나 OnDamaged함수가 갑자기 생겼던데 영상 오류가 아닌 편집을 그렇게 하신거 맞나요?? 내용 이해하는데는 크게 문제가 없었는데 조금 찜찜해서 여쭤봅니다.