월 15,400원
5개월 할부 시다른 수강생들이 자주 물어보는 질문이 궁금하신가요?
- 미해결유니티(Unity)로 시작하는 게임개발: Part 2. C# 프로그래밍 입문
Part4 유니티로 세가지의 게임만들기 강의도 들을 수 있는건가요?
Part3 슈팅게임 만들기는 찾았는데 Part4는 강의 들으려면 어디서 들어야하나요?
- 미해결유니티(Unity)로 시작하는 게임개발: Part 2. C# 프로그래밍 입문
플레이 버튼이 없어요
윈도우 Microsoft Visual Studio Community 2019버전 16.8.3 사용중입니다 플레이 버튼이 없고, 상단 메뉴도 강사님과는 다릅니다. 상단에 실행 메뉴가 없고 디버그 메뉴에 디버깅 시작이 있긴합니다만 비활성화되어 있어요 어떻게하면 될까요 ㅠㅠ?
- 미해결유니티(Unity)로 시작하는 게임개발: Part 2. C# 프로그래밍 입문
전체 연습문제 다운방법, 현재 연습문제 파일이 깨져서 열립니다.
안녕하세요, 최형선 강사님. 강의 정말 잘 듣고 있습니다! 방금 C# 자료형 강의 중에 '프로그래밍 학습법2' 부분을 들었는데, 올려주신 문제가 전체가 다 아닌거 같아서요. 그리고 연습문제를 다운받으니 글자들이 깨져서 나옵니다. 이런식으로.. . //«— ¡§ºˆ∫غˆø° 10¿ª ¥Î¿‘«œ∞Ì √‚∑¬«œ∞Ì Ω«ºˆ ∫غˆø°¥¬ 10.2∏¶ ¥Î¿‘«œ∞Ì √‚∑¬ // ∫غˆ numº±æ // ∫غˆ numø° 10 ¥Î¿‘ // ∫غˆ num √‚∑¬ // Ω«ºˆ fNum º±æ // Ω«ºˆ fNumø° 10.2 ¥Î¿‘ // fNum √‚∑¬ 저는 맥을 사용중입니다. 감사합니다.
- 미해결유니티(Unity)로 시작하는 게임개발: Part 2. C# 프로그래밍 입문
연습문제파일
강의 항상 잘보고 있습니다. 강사님 강의를 보다보면 연습문제 모아논 파일들이 있는데 혹시 연습문제 모음집이 따로 있나요?? 찾을수가 없네요..
- 미해결유니티(Unity)로 시작하는 게임개발: Part 2. C# 프로그래밍 입문
중단점을 찾을수가 없습니다
해당 강의에서 중괄호에서 중단점을 잡고 디버깅실행을 눌렀는데 중단점을 찾을수없다고 뜨네요.
- 미해결유니티(Unity)로 시작하는 게임개발: Part 2. C# 프로그래밍 입문
10분 24초에 만약 b를 0으로 둘시, "나눗셈이 불가능"대신 attempt to divide by zero 오류가 뜹니다.
아마 가장 마지막 밑에줄에 있는 else때문인것 같은데 이걸 해결하기 위해선 elseif로 도배를 해야할까요?
- 미해결유니티(Unity)로 시작하는 게임개발: Part 2. C# 프로그래밍 입문
if문의 비교(10분56초~59초사이)
강의 잘 보고 있습니다. 연습문제가 더 많으면 좋을거같아욤! 더불어 목소리가 중복해서 들립니다!
- 미해결유니티(Unity)로 시작하는 게임개발: Part 2. C# 프로그래밍 입문
NullReferenceException을 기대했는데....
쓰신 코드 보니까 Destroy 관련해서 NullReferenceException을 유도해낼 수 있을거라 생각을 했는데 그렇지가 않아서 질문을 드립니다 public List<GameObject> objs; void Start() { objs = new List<GameObject>(); GameObject go1 = new GameObject(); GameObject go2 = new GameObject(); objs.Add(go1); //objs.Add(go2); //Destroy(objs[0]); Destroy(go1); //objs.RemoveAt(0); print(go1.name); } 이게 제가 테스트 해본 내용입니다 제 생각에는 objs에 go1을 추가하고, Destroy(go1); 실제 go1을 없애고 objs.RemoveAt(0)을 하지 않았기에 해당 리스트의 참조변수는 남아있으나 참조 대상이 없어져버려서(go1) nullReferenceException이 일어날거라고 생각을 했습니다 결과는 일어나지 않았고 그래서 그 앞에 Destroy(objs[0]);을 추가 해봤지만 print(go1.name);는 앞선 경우와 마찬가지로 작동을 하더군요 제 생각에 이러는 이유는 계층뷰에서 해당 게임 오브젝트가 존재해서 같은데 이유가 뭔가요?
- 미해결유니티(Unity)로 시작하는 게임개발: Part 2. C# 프로그래밍 입문
C#에서의 메모리 관리
계속해서 반복되는 내용에서 깨달은게 있는 것 같은데 맞는지 확인 좀 해주셨으면 합니다 배열에서도, 리스트에서도, 아니 그 이전, 참조에 대해서 배울 때 부터 나오는 점이 어디에 변수와 실제 데이터가 선언이 되느냐의 문제 잖아요? 값형식이라면, 함수 종료시에 바로 바로 스택에서 사라지니까 딱히 메모리 관리라는게 필요 없어 보입니다 참조형식이라면, 실제 데이터가 참조되지 않는다면 Garbage Collector가 알아서 지워주지만, 이걸 잘 이용해야 할 것 같이 보입니다. 참조 변수가 stack에 있다면, 역시나 위의 값형식 처럼(대부분의 경우) 알아서 없어 질거라 기대를 하지만, 멤버 변수로 선언하는 경우처럼 참조 변수 마저도 Heap에 있다면 적절하게 이 참조 변수가 어디서 사라질것인지를 고려해야 할 거라고 생각 합니다 이게 맞나요?
- 해결됨유니티(Unity)로 시작하는 게임개발: Part 2. C# 프로그래밍 입문
Heap 과 Stack
강의를 듣고 제가 이해한 내용이 맞는가 알고 싶습니다 구체적인 이유는 모르겠으나, 메모리를 Heap과 Stack으로 나눈것은, 용도의 차이를 둬서 효율성을 꾀한것으로 보입니다 아직 찾아보진 않았으나, Stack에 올라오는 것들은 Heap에 올라오는 것들 보다 크기가 작은 것들이 아닐까 짐작이 됩니다 참조를 쓰지 않고 바로바로 값에 접근을 해도 될 만큼 작은게 아닌지요? 반면, Heap에 올라오는 것들은 Stack에 저장하기에는 너무 크기가 크고, 복잡하기 때문에 Stack에 참조 변수라는 단말기를 만들어두고, 거기에 Heap의 주소를 입력해둔 것이라 봅니다 거기다, new 생성자와 Garbage Collector가 필요한 것도, Stack 보다 많이 복잡하고 크기 때문에 생성하고 지우는 절차가 더 까다로운 것으로 보입니다 함수 밖의 값 형식. 저는 이걸, 멤버 변수라고 이해 했는데 맞는가 확신이 서질 않습니다. 그리고 이것이 어째서 Heap에 존재해야만 하는지는, 어렴풋이이 멤버변수들은 클래스로 부터 생겨난 Instance의 실제 데이터들이기 때문에 그러지 않는가 싶은데 맞나요?
- 미해결유니티(Unity)로 시작하는 게임개발: Part 2. C# 프로그래밍 입문
앞선 강의에서 Instance와 연관 지어서
해당 강의에서 참조 당하는 실제 데이터는 힙에 존재하고 있고 메모리 관리자가 계속해서 확인하면서 참조 당하는지를 본다고 하셨잖아요? 여기서 playerScript의 실제 데이터를 언급하셨는데 만약에 제가 두개의 플레이어 Instance를 게임에서 만들었으면 당연히 두개의 playerScript의 실제 데이터가 다른 주소의 힙 영역에 존재하게 되고, 스택에 있는 참조 변수(?)는 그 자체에 맞는 실제 데이터를 참조하게 되는거죠?
- 해결됨유니티(Unity)로 시작하는 게임개발: Part 2. C# 프로그래밍 입문
Instance와 variable
어떤 구조체나 클래스로 선언된 걸 Instance라고 불러야 하나요 아니면 Variable이라고만 해야 하나요? 아니면 뭔가 포함관계 같은 건가요?
- 미해결유니티(Unity)로 시작하는 게임개발: Part 2. C# 프로그래밍 입문
구조체 6번째 강의
구조체 6번째 강의에서는 구조체를 선언할 때는 초기화가 필수 라고 하셨는데 여기선 반대로 말씀하시는 것 같아서 어떤게 맞는건지 궁금합니다
- 해결됨유니티(Unity)로 시작하는 게임개발: Part 2. C# 프로그래밍 입문
제공 함수는 실제 구현하는 몸체가 없다
제공 함수는 실제 구현하는 몸체가 없는데 이걸 쓸 수 있는 이유는 네임스페이스 덕분이라고 하셨잖아요 구현하는 몸체가 없다라고 하신건, 현재 사용자가 Random.Range()를 불러다 쓸 스크립트 상에 몸체가 없다라는 말씀이시죠?
- 미해결유니티(Unity)로 시작하는 게임개발: Part 2. C# 프로그래밍 입문
인자와 매개변수
void Start() { int a = 10; MyPrint(a); } void MyPrint(int a) { } 선강의에서, 서로 다른 함수에서 선언된 변수들은 이름에 관계없이 다른 메모리 공간에 저장되기 때문에 접근이 불가능 하다고 하셨는데 이게 인자와 매개변수의 관계에서도 그대로 적용되는 거죠? 그래서 다음과 같이 설명이 가능한거죠? Start()에서 MyPrint(a)라고 함수를 호출 할 때, a라는 변수는 인자이기에 앞서, Start()에서 선언된 변수이고 MyPrint(int a )의 매개변수는 이름이 a이건 아니건간에, 인자의 값을 받아서 새로이 생성되는 완전히 다른 변수이다
- 해결됨유니티(Unity)로 시작하는 게임개발: Part 2. C# 프로그래밍 입문
코드에서 new GameObject를 실행했을 때 유니티 화면상의 상태 문의
강의와 같이 VisualStudio에서 GameObject obj1 = new GameObject(); 를 Start함수에 입력하고 유니티에서 플레이 버튼을 누르면, 좌측 상단에 New Game Object가 나타납니다. 그런데 플레이 버튼을 한번 더 누르면 New Game Object가 사라집니다. 이것은 TestScript의 class가 해제되었기 때문에 메모리에서 사라지는 것인가요?
- 해결됨유니티(Unity)로 시작하는 게임개발: Part 2. C# 프로그래밍 입문
유니티 콘솔화면에 나타난 내용 문의
안녕하세요. 클래스와 객체의 개념을 어느 정도? 이해는 하고 있는데요. 오늘 강의의 콘솔 출력창 값에 질문이 있습니다. 먼저 이 앞장 강의에서 만들었던 Player object도 있고 이번 강의에서 만들었던 Enemy1, Enemy2 도 유니티에 존재하는 상황입니다. 콘솔창을 캡쳐해 보면, 위 세가지 모든 오브젝트에 대한 출력값이 나타나는데요. 그런데 출력되는 순서가 Enemy2 -> Enemy1 -> Player -> Enemy Script의 Update함수 안에 있는 발사 이런 순서인데 이게 정상인가요? 아님 다른 이유가 있는지 설명 부탁드립니다.
- 해결됨유니티(Unity)로 시작하는 게임개발: Part 2. C# 프로그래밍 입문
멤버변수를 전역변수라고 생각해도 되는지요?
계속 앞서 배운 자바스크립트와 연관해서 질문드려 죄송한데요. C#에서의 멤버변수를 자바스크립트에서의 전역변수와 동일한 의미라도 생각해되 되는지요? 마찬가지로 C# 제작함수안에서 선언한 변수는 지역변수라고 이해해도 될까요?
- 해결됨유니티(Unity)로 시작하는 게임개발: Part 2. C# 프로그래밍 입문
출력만 있는 함수 관련 질문
강의에서는 출력만 있는 함수에 함수내의 변수에다 증감자를 써서 값을 변하게 했는데 그런 작업없이 그냥 return만 입력하는 것은 어떤 의미가 있는 것인가요?
- 해결됨유니티(Unity)로 시작하는 게임개발: Part 2. C# 프로그래밍 입문
문제 파일은 어디에 있나요?
강의자료나 문제파일은 어디에 올라와 있나요?