게시글
질문&답변
2022.07.22
다음 강의 출력 변수?
네 구조지향적인 부분만 이 강의에 있고요 다음 C# part2 강의를 보시면 객체지향도 있을 겁니다 반복적으로 봐도 좋으니 처음부터도 좋고 진도 나간 이후부터 보셔도 좋습니다 좀 더 자세히 설명하니 처음부터 보시는게 더 좋을 것 같습니다 강의 수강해주셔서 감사합니다
- 1
- 1
- 225
질문&답변
2022.07.22
플레이 버튼이 없어요
위에 있는 연두색의 연결 버튼이 있는데 그 버튼으로 디버깅 가능합니다 버전이 바뀌면서 그리고 맥킨토시하고 모양이 조금 달라보이는데 그걸로 해보시면 될겁니다 브레이크 포인트 잡고 유니티 플레이 하고 디버그 해보셔도 되고 브레이크 포인트 잡고 디버그 실행 한다음에 유니티 플레이를 해보세요 둘중에 하나는 될겁니다
- 0
- 1
- 505
질문&답변
2022.03.28
전체 연습문제 다운방법, 현재 연습문제 파일이 깨져서 열립니다.
안녕하세요 답변 늦어서 죄송합니다. 지금 확인했네요. 몇몇 파일의 인코딩 형식이 EUC-KR로 되어있어서 발생한 현상같네요. 해당 파일들의 인코딩 형식을 UTF-8로 수정했습니다. 감사합니다.
- 0
- 2
- 235
질문&답변
2022.03.08
비주얼스튜디오 오류
안녕하세요. 혹시 이거 아닐까요? https://anythingcafe.tistory.com/5 다른 것도 좀 찾아보고 뭔가 생기면 알려드릴께요 혹시 맥인가요? 아니면 윈도우 노트북인가요? 노트북에서도 같은 건 아닌데 num 키 때문에 이런 현상이 생기는 걸 좀 보긴 한거 같기도 해서요.
- 0
- 1
- 1.9K
질문&답변
2022.03.02
part4강의
현재 Part4 가 내려가 있는상태이고요. 궁수의 전설 강의만 따로 Part4 로 인프런과 이야기 협의하고 다시 오픈 예정입니다. 관심 가져주셔서 감사드립니다. ^^
- 0
- 1
- 176
질문&답변
2022.03.02
발사체 스피드
답변이 늦었네요 죄송합니다. 보니까 답변을 찾으신거 같은데요. 우선이 코드가 먼저인지 에디터가 먼저인지가 작업의 순서에 따라서 다릅니다. public float speed = 5.0f; 우선 위의 코드가 있다고 생각해보겠습니다. 아무 문제가 없으면 컴파일이 됩니다. 이때 코드가 먼저입니다. (코드에디터에서 처음 코드를 생성하고 유니티로 돌아오는 순간 c#코드에 있던 5.0의 값을 가지고 에디터가 값을 관리합니다. ) -> 이때 에디터에 5.0의 값이 박힌다는 뜻입니다. 이후에 코드에서 값을 수정해봐도 소용이 없죠. 에디터가 우선순위가 되는 것입니다. 그 다음부터는 에디터에서 값을 바꿔줘야 합니다. (에디터가 우선) 그래서 이 값을 중간에 바꿔주기 위해서는 게임이 실행 중에 값을 바꿔줘야 합니다. 아니면 다른 방법으로는 초기화를 실행하는 다른 기능 (함수) 같은걸로 처리를 해줘야 합니다. (나중에 소개) 위의 첫번째 예 게임실행중에 값을 바꾸는 예제로 다음과 같이 할수 있을 것 같습니다 값을 이렇게 실행해 주는 것은 거의 하지 않는 작업이긴 하지만 테스트를 위해서 아래같이 작업할 수 있습니다. void Update(){ speed = 1; print(speed); } 위의 코드가 실행되면 speed 가 1 이 되겠죠. 실행중에 에디터에서 확인을 해보면 1이고요. 실행이 끝나면 5로 돌아갈겁니다. 벌써 초기값으로 코드가 생성된 시기에 관리되니까요. 값을 바꾸려면 에디터에서 바꾸어야 한다는 겁니다. 결론적으로는 이렇습니다. 1. 코드가 처음 컴파일될때의 초기값이 유니티 에디터로 들어갑니다. (이때 코드가 우선) 2. 이후 실행시는 유니티에디터에 값이 있으므로 에디터가 우선입니다. (에디터에서 값을 바꾸면 코드와는 관계가 없게 됩니다) 다른 해결 방법 public 으로 쓰고 에디터에서 사용하지 않기 위해서는 이 내용도 나중에 설명이 나오긴 하는데요. 아래처럼 어노테이션을 쓰셔도 됩니다. (많이들 사용하는 방법입니다) [HideInInspector] public int speed = 5; 이렇게 하면 public 이지만 유니티에서는 나오지 않거든요. 답변이 되시길 바랍니다
- 0
- 1
- 217
질문&답변
2022.02.17
전체 연습문제 다운방법, 현재 연습문제 파일이 깨져서 열립니다.
윈도우즈에서 올려서 그런것 같습니다. 깃허브나 다른 곳으로 올리는 것을 한번 생각해보겠습니다. 2월25일까지는 확인하고 올려드리도록 하겠습니다 감사합니다.
- 0
- 2
- 235
질문&답변
2021.12.29
안녕하세요 강사님 정말기초적인질문하나만 드려도될까요.,,,,
안녕하세요. 프로젝트를 한번 보내주실수 있을까요? 폴더 전체를 압축해서 보내주시면 되고요. sun5022@naver.com 입니다. 아니면 010-8627-5022로 연락주세요 ^^
- 0
- 1
- 237
질문&답변
2021.12.14
4분 44초 제가 이해한게 맞는지 궁금합니다
-- 대신에 // 를 써주시면 더 좋을 것 같습니다. 이게 주석이니까요 public struct MyTransfrom // 1. 추후 확장성을 위해 오픈 { private Vector3 _position; //2. 내부적으로 _position이라는 이름을 저장 public Vector3 position // 3. _position의 값을 정의하고 가져오기 위함, public Vector3 position;하면 안됨 { ... } 그리고 위의 회색 글씨처럼 하면 안될 것 같습니다. 프로퍼티라서 거기에 세미콜론이 있는 것이 아닙니다. 번호를 매겨서 하나씩 설명드리겠습니다. 1. 추후 확장성을 위해 오픈 이 내용을 학습하고 있는 이유가 프로퍼티라는 것을 알아보면서 왜 이것을 사용했을지를 알아보기 위함입니다. 유니티에서 제공하는 Transform 이라는 것이 있는데 이 안에 포지션이 있습니다. 저희가 유니티의 Transform 의 소스코드를 살펴보지 못하기 때문에 MyTransform 이라는 것을 만들어서 이런식으로 되어 있을 것으로 예상하기에 이것을 한번 만들어보고 테스트해보는 것입니다. -> 유니티의 Transform position 을 예상하고 프로퍼티 기능을 통해 만들어봄, 강의 시작부분에 있는 그림을 참고 하세요. 2. 내부적으로 _position이라는 이름을 저장 _position 과 position 은 다른 변수의 이름입니다. _position 은 private 의 변수이고요. position 은 프로퍼티입니다. 이것은 C#에서 지원하는 규칙으로 되는 약속입니다. 저희가 프로퍼티라는 외부에서 접근할 수 있는 변수를 사용하려고 하는데 C# 에서 이것을 제공해주고 있는 기능입니다. 이전 강의에서 getHp, setHp 이런 함수를 만드는 부분이 있을텐데 저희가 hp 변수를 숨기고 getHp , setHp 라는 함수로 사용했습니다. 이러한 방법이 hp 변수를 숨김으로써 객체지향적으로 장점이 있기 때문에 이런식으로 사용합니다. 그런데 타이핑이 너무 길어지기 때문에 C# 언어차원에서 변수를 함수처럼 쓰는 기능을 제공해 주는 것입니다. 그것을 저희가 프로퍼티라고 변수도 아니고 함수도 아닌것을 변수처럼 사용합니다. -> _position 이라는 내부 숨김 변수를 지정 3. _position 의 값을 정의하고 가져오기 위함 2번에서 말씀드린대로 _position 의 값을 정의를 여기서 하지 않고 _position 값은 2번에서 벌써 했습니다. _position 을 사용하던지 그것을 사용하지 않던지의 내용은 저희가 구현하기 나름입니다. 예를 들어서 다음과 같이 구현할수도 있습니다. (사진) 이부분은 이해를 하는 것이 아니라 C#의 규칙이 정해져 있는 것이고 약속이므로 저희는 그것을 따르는 것 뿐입니다. 그러므로 보고 규칙에 맞춰서 외우시고 나서 다시 한번 살펴보시면 좋을 것 같습니다. 이해를 해야 하는 부분은 위에 볼드로 써놓은 부분입니다. 이전 강의에 보시면 함수를 통해서 프로퍼티의 기능을 하는 getHp , setHp 가 있는데요. 그 내용을 한번 보시고 프로퍼티를 직접 구현해놓을 것을 보셔도 좋을 것 같습니다. 이러한 기능이 있는데 프로퍼티를 C#에서 언어차원에서 지원해주고 있는 것 뿐입니다. 기능은 동일하고요. 다시 예를 들어보면 아래처럼 변수를 만들어서요. MyTransform tr; tr.pos = new Vector3(1,1,1); // 이렇게 실행하면 set 의 기능이 실행됩니다. 디버그를 찍고 보셔도 좋을 것 같습니다. Vector3 p = tr.pos; // 여기서 실행을 했을 경우에는 get 안에 내용이 실행됩니다. 그리고 유니티의 트랜스폼의 포지션이 이러한 형태로 구현이 되어 있는 것이기 때문에 이 예제를 MyTransform 이라고 만들었습니다. 혹시 이해가 아직 안되시면 시간나실때 문자 한번 주시고 전화한번 부탁드립니다. 010-8627-5022 줌으로 잠시 알려드릴께요.
- 0
- 1
- 190
질문&답변
2021.12.13
2분 44초 왜 void 함수를 써야하나욤..?
프로퍼티라는 것이 문법의 하나로 변수를 숨기고 함수로 쓰기 위해서 제공되는 기능입니다. 외부에서 hp 변수를 접근할때 SetHp 를 사용하려면 함수를 호출할텐데요. 이 함수는 값을 적용하니까 리턴을 할 필요가 없죠. 그래서 void 함수가 됩니다. getHp 경우에는 값을 읽어오는 기능을 하므로 출력이 있습니다.
- 0
- 1
- 264