월 17,600원
5개월 할부 시다른 수강생들이 자주 물어보는 질문이 궁금하신가요?
- 미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
5:23 질문입니다
private float _speed = 10.0f 에서 [SerializeField] 속성을 붙이면 public처럼 유니티에 표시된다고 하셨는데 처음부터 public으로 만드는 것과 private로 만든 후 SerializeField 속성을 붙이는것의 차이점이 있나요?
- 미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
GetComponentsInChildren()
안녕하세요! 강의를 듣다가 이해가 잘 안되고 헷갈리는 부분이 있어서 질문드립니다. GetComponentsInChildren() 함수 설명에 component를 리턴한다고 되어있어서 처음에는 Rigidbody, Collider, Transform같은 component를 말하는 줄 알았습니다. 그런데 component.name == name으로 비교를 하길래 디버깅해보니 component.name에 PointText, ScoreText가 들어가더라구요. 제가 생각하는 component는 Text이고, component.name도 Text인데 뭔가 이상했습니다(??) 검색을 해보니 컴포넌트형으로 자식 오브젝트를 검색해서 나타난 자식오브젝트의 배열을 반환한다, 자식 객체들에게서 지정한 컴포넌트를 모두 추출한다 등의 설명이 있더라구요. 둘 다 맞는 말인 것 같고 이해도 되는 것 같은데 여기서의 component는 자식 오브젝트를 나타내는 건가요? 왜 T라는 component를 가지는 자식들을 찾는데 component를 리턴한다고 했는지 혼란스럽습니다.
- 해결됨[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
gameObject에 관하여
UI 자동화 #1에서 14:10 부분에서 gameObject가 최상위 부모라고 하셨는데 gameObject는 단순히 이 스크립트가 붙은 게임 오브젝트를 리턴하는것이 아닌가요? 예를들어, go1 ㄴ go2 ㄴ go3 이런 계층 구조가 있고 gameObject를 호출하는 스크립트가 go2에 붙어있을 때 go1이 불러지나요? go2가 불러지나요? 최상위 부모라면 go1이 불러지는것인가요?
- 미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
헤메고 있어 질문드립니다.
이런 식으로 질문드리는 게 문제라는 점을 알면서도 어디서부터 건드려야 할 지 감이 오지 않아 질문드립니다. bind 함수에서 다른 유형은 문제 없는데 bind<Image>(typeof(Images)) 로 바인드 할 경우 문제가 발생합니다. 디버그를 해보니 Bind<T>로 이동하여 typeof(T) == typeof(gameObject) 조건을 만족하지 않아 else 문 FindChild<T>로 이동합니다. 그 다음 go == null 조건 만족하지 않고 리커시브도 트루기에 맨 아래 foreach문으로 이동하는데 디버깅을 해보니go.GetComponentsInChildren<T>()을 가져온 component에 ItemIcon이 아닌 PointButton이 들어갑니다. 이게 무슨 까닭으로 이리 되는 건지 가닥을 잡을 수 없어 장황하게 질문 남깁니다.
- 해결됨[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
계속 의문이 듭니다
이전강의에서 부터 좀 의문이 가던 건데 유니티 문서를 찾아보니까 더 헷갈려서요 지금 구조가 InputManger.OnUpdate() - 키보드/마우스가 눌러졌는지 감지 (Input.anyKey 혹은 Input.GetMousebuttonDown을 사용) 각 Input마다 정의된 Action을 Invoke 각 Action을 구독하고 있는 함수들에게 Event 발생을 알림 (현재로선, PlaterController.cs의 OnKeyBoard(), OnMouseClicked) 거기다 Manager.cs에서 각 매니저들의 인스턴스를 들고 있고 Manager.cs의 Update() 속에서 _input.OnUpdate()를 불러주도록 되어있습니다 이런 구조랑 설명에 대해서 이해는 가거든요 나중에 디버그 할 때나 기능을 추가할 때, 딱 필요한 부분만 찾아서 거기서만 작업해주겠구나 하는 느낌은 드는데 100% 납득이 안갑니다 굳이 이렇게까지 많이 쪼개야 하나 하고요 아직 기능이 많이 추가 된게 아니라서 이렇게 쪼개는 단계가 너무 많아 보여서 그런걸까요?
- 해결됨[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
Action KeyAction 작동 관련 질문드립니다!!
[타 질문자분 댓글에 작성한게 좀 민폐인 듯 하여 새 질문란에 다시 올립니다... 관련질문 : KeyAction이 Null 에서 어떻게 Not Null 로 바뀌는건가요?] 그냥 개인 의견입니다만... 저도 지금 InputManager가 잘 이해가 안되서 힘들지만 UI 공부에 있어서 상당히 중요한 부분이라고 느껴져서 삭제는 안하시고 어려우신분들은 스스로 일단 스킵하도록 하시는게 좋지 않을까 싶습니다 ㅠㅠ 아쉬워서요 ㅠㅠ 더불어 원래 질문자님에게 답변해주신 말이 100프로 이해가 되지 않아서 번거로우시겠지만 비슷한 질문드립니다 ㅠ (함수라는 단어가 중복되어 괄호 안에 번호를 넣어 구분하겠습니다..! e.g. (1번), (2번)) KeyAction은 말씀하셨듯이 delegate이기 때문에 결국 어떤 함수를 대리하는 역할만 한다는 것은 알겠습니다. 그렇다면 Action KeyAction이 대리하는 함수(1번)는 시스템 상 숨겨져 있는 건가요? 그렇다면 눌려지는 키에 대한 신호를 매개변수로 받고 반환형식이 Action인 어떤 함수(2번)가 키가 눌리면 return new Action((1번)); 이런식으로 KeyAction이 대리할 함수를 지정해줌으로써 null이 아니게 되는 건가요..?(스스로 생각하면서도 이게 어떻게 KeyAction으로 연결되는지는 의문입니다..) 또한 그렇게 null이 아니게 된 KeyAction은 Invoke()를 통해 구독자들에게 실행됨을 알림과 동시에 대리하는 함수(1번)을 호출하고 눌린 키에 대한 정보는 Input 클래스 어딘가의 static 필드에 string으로 저장되었다가 OnKeyboard() 에서 Input.GetKey(String name)을 통해 bool을 return하는 건가요..?!!? 질문이 두서없어 죄송합니다... 질문을 구체화 할 필요가 있다면 다시 정리해서 올리겠습니다..!!
- 해결됨[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
GameObject 및 Managers 인스턴스 생성 관련
안녕하세요! 항상 좋은 강의 제공해주셔서 감사합니다! 강의 4:43 쯤에서 GameObject go나 Manager mg모두 MonoBehaviour를 상속받기 떄문에 new라는 키워드를 통하지 않고 인스턴스화 하는 것으로 이해하고 있습니다.(타임코드는 어떻게 남기는지 몰라 죄송합니다...) 하지만 13:05 쯤에서는 if(go == null) 체크 후 이미 생성되었지만 null인 상태인 go에 new 키워드를 사용한 GameObject를 대입하고 계신 거 같은데요...! 이때 GameObject에 new키워드를 사용할 수 있는 이유가 궁금합니다!
- 해결됨[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
로테이션 동시에 2개의 키를 눌렀을때에 대하여
안녕하세요 로테이션 부분중 동시에 키를 입력했을 때에 대해서 궁금한 점이 생겨 질문드리게 되었습니다 if (Input.GetKey(KeyCode.W)) { transform.rotation = Quaternion.Euler(new Vector3(0.0f, 0.0f, 0.0f)); } if (Input.GetKey(KeyCode.S)) { transform.rotation = Quaternion.Euler(new Vector3(0.0f,180.0f,0.0f)); } if (Input.GetKey(KeyCode.A)) { transform.rotation = Quaternion.Euler(new Vector3(0.0f, 270.0f, 0.0f)); } if (Input.GetKey(KeyCode.D)) { transform.rotation = Quaternion.Euler(new Vector3(0.0f, 90.0f, 0.0f)); } 위와 같이 코딩되어 있을 때 W 와 D를 같이 누르면 앞을 한번 봤다가 오른쪽을 한번 보는 하는 행동을 반복해야하는 것 아닌가요? 테스트를 해보니 오른쪽만을 바라보네요 왜 그런 것인가요?
- 해결됨[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
조언을 구하고자 합니다
지난번에 알고리즘 강의 들을때 질문했던 부분이랑 일맥상통인데 알고리즘 강의는 강의 들은걸 누적하면서 복습했습니다 1강 듣고 다음날 2강 듣기 전에 1강에서 했던거 다 따라서 해보고 2강 듣고 3강은 1, 2강에서 했던거 다 따라해보고 3강 듣고 했는데 이건 알고리즘 강의니까 가능했던 방식같고 현재는 일단 복습이라기 보단, 들은 내용중에 필요한거 간단히 노트해놓고 강의에서 처럼 코드를 지우시면 그걸 지우는거 까지 다 따라해보고 넘어가고 있습니다 이러다 보니, 앞에서 들은게 다 기억은 안나는데 계속해서, 나중에 다큐먼트 찾아보면 된다고 하셔서 일단은 이렇게 하려고 합니다 이 강의 다 끝내면 다시 처음부터 복습을 해보면 좋지 않을가 하는데 이러한 방식에 조언을 해주실수 있을까요?
- 미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
12:54분 관련 추가 질문입니다
답변으로 적어주신 링크(https://docs.microsoft.com/ko-kr/dotnet/csharp/programming-guide/classes-and-structs/how-to-initialize-objects-by-using-an-object-initializer) 와 추가적인 기본 생성자를 사용하되 이니셜라이저를 이용해 초기화한다는 것은 잘 설명해주셔서 이해를 했습니다. 제가 궁금한 점은 name 이라는 생성자를 이용하여 GameObject를 만들면 유니티에서 자동으로 인식하여 그 문자열을 게임오브젝트의 이름으로 생성해주는것 같은데 그러한 생성자 목록들을 확인할 수 있는 경로나 방법이 있을까요?
- 미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
다른 에셋으로 실습중에 질문이 생겼습니다.
strong knight가 없어서 다른 에셋으로 공부하고있습니다. 근데 animation 아이콘이 달라서 확인해보니 UnityChan의 animation과는 다르다는것을 알았습니다. UnityChan의 animation은 여러가지가 합쳐진 것같은데 제가 다운받은 에셋을 UnityChan처럼 animation을 합치려면 어떻게 해야하나요?? 아니면 그냥 합치지않고 Controller만 잘 만들면 상관없나요??
- 미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
Raycast에서 카메라 위치를 transform.position이 아닌 _delta 로 하는 이유
영상의 3:24초 경에서 Player(유니티짱)에서 Camera로 향하는 Raycasting을 할 때 왜 카메라 위치에 transform.position이 아니라 _delta를 하나요? _delta는 플레이어에서 카메라까지의 거리를 담은 vector3라고 알고 있어서요. 그래서 제가 생각했을 땐 _delta가 아닌 transform.position을 넣어야 잘 작동할 것 같은데 막상 transform.position을 넣었더니 카메라 위치가 아닌 곳으로 ray를 쏘고 있더라고요. Camera의 position을 넣어야 할 것 같은 Physics.Raycast()의 두번째 인자에 _delta 를 값을 넣어야 잘 작동하는 이유가 무엇인가요?
- 미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
OnKeyboard에 _moveToDest = false 추가하면 캐릭터 움직임이 이상해집니다.
PlayerController에서 OnKeyboard()에 _moveToDest = false 추가하면 캐릭터 움직임이 이상해집니다. 캐릭터가 매우 짧게 짧게 이동하며 목적지로 제대로 나아가지 않는 행동이 나타납니다. 저는 Update()에서 OnKeyboard()와 OnMouseClicked()가 계속 실행되면서 _moveToDest 가 on/off가 반복되는게 그 원인이라고 생각합니다. 그런데 Rookiss님 코드에서는 캐릭터가 잘 움직이는게 아무래도 제가 무언가 잘못한 것 같은데 그게 뭔지 모르겠습니다. 도와주시면 감사하겠습니다! 강의 너무 유익하게 잘듣고 있습니다.
- 해결됨[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
매니저 파일 관련한 질문입니다
C#파일을 만들기 위해 이름을 GameManager라고 정의했는데, 톱니바퀴 모양의 파일이 만들어졌습니다 원래 정의되어 있는 파일인 것 같은데, 같은 매니저 파일인가요?
- 미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
Resource Manger 관련
강사님 안녕하세요. Resource Manager 코드 작성 하고 난 후 tank 오브젝트가 생성이 되지 않아서 질문 드립니다. - 제가 작성한 유니티 인데요. 폴더랑 , 프리팹 이름입니다. - tank를 호출시키는 부분입니다. - 리소스 매니저 작성한 내용입니다. 여기서 null 이 나옵니다... - 제가 확인했을때 Prefabs 폴더 명이랑 Tank 프리팹 명이 같은데 오브젝트 생성이 안되서 질문 남깁니다. 뭐가 잘못됐는지 알수 있을까요...?
- 해결됨[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
강의자님의 지식과 역량에 감탄중입니다
아직 3번째 단계의 강의를 듣는중이지만 강의의 구성요소와 강의내용 그리고 강사님의 역량에 감탄하고 있습니다. 단순히 게임엔진에 대해서만 배우는 것이 아니라 데이터베이스, 운영체제, 자료구조, 알고리즘, 컴퓨터구조등 컴퓨터공학의 기저에 있는 여러가지 내용들을 짚어주고 넘어가신다는게 좋은 강의 같습니다. 거두절미하고 몇몇 여쭤보고 싶은 내용이 있어 질문 드립니다. 강의 내용을 듣다 보면 중간중간 보간법등에 대한 내용이 나와있는데 수치해석에서 나오는 개념들이더군요 수치해석과목같은경우에는 저희학교는 컴퓨터공학에서 다루지 않고 기계공학이나 수학과쪽에서 다루고 있는데 타학과 수치해석 과목을 듣는게 클라이언트 지망 개발자한테 도움이 될까요?
- 미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
코드 입력할때 다른 버전 찾는 거 어떻게 해요??
Raycast() 하면 버전이 16개 정도 되는데 어떻게 띄우는 건가요?변수하나 입력하면 뜨긴 하는데 아무것도 입력안한상태로 띄우는 방법이 궁금합니다
- 미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
레이저는 나오는데 로그에 안 찍혀요
unichan 큐브 이런 상황인데 왜 안찍힐까요?
- 미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
13:50
안녕하세요! 13:50부터 등장하는 플레이어가 이동할 때 몬스터를 밀 수 있는 현상을 고치시는 방법에 대한 질문입니다. 이 밀리는 현상이 NavMeshAgent를 사용해서 이동시키는 것과 어떤 관계가 있는 것인지 잘 와닿지가 않아서요! ㅠㅠ 왜 nma.Move 함수 사용에서 transform.position 을 업뎃해주는 방식으로 바꾸면 위 현상이 고쳐지는 것인가요?
- 미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
crossfade
안녕하세요. 강의 정말 정말 잘 듣고 있습니다! crossfade 함수의 네 번째 매개변수 normalizedTimeOffset 는 반복 재생 할 수 있는 인수라고 보면 될까요..? 문서에도 The time of the state 라고만 나와있어서 잘 와닿지가 않습니다.