안녕하세요, 이재현입니다.
1인 게임 개발자를 꿈꾸며 유니티를 독학으로 시작했고, 2009년부터 2012년 까지 1인 개발로 모바일 게임 10여종을 출시했습니다. 개발 도중 우연한 기회에 유니티 서적 집필과 오프라인 강의를 진행했습니다. 강의를 진행하면서, 잘 아는 것과 잘 가르치는 것은 다르다는 사실을 매번 깨닫고 있습니다. 이러한 경험을 바탕으로, 제가 가진 지식을 여러분들께 더 효과적으로 전달하기 위해 늘 노력하고 있습니다.
이번 강의가 여러분께 좋은 출발점이 되어, 즐거운 게임 개발자의 세계로 나아가는 데 작은 보탬이 되기를 기원합니다. ~
Khóa học
Đánh giá khóa học
- Khóa học tuyệt đối! Unity6 - Xây dựng hệ thống backend sử dụng UGS
- Khóa học tuyệt đối! Unity6 - Lớp học chuyên sâu phát triển game mạng (Phần 1)
- Khóa học tuyệt đối! Unity6 - Xây dựng hệ thống backend sử dụng UGS
- Khóa học tuyệt đối! Unity6 - Xây dựng hệ thống backend sử dụng UGS
- Khóa học tuyệt đối! Unity 6 - Masterclass Unity qua game TPS
Bài viết
Hỏi & Đáp
Bullet이 방향 문제가 있어요.
답변이 많이 늦었습니다. 해결하셨다니 다행이세요.꼭 완강하시길 응원합니다.
- 0
- 3
- 32
Hỏi & Đáp
prefab 관련 문의
안녕하세요. 굿데이님, 스크립트는 Parent 또는 Child에 추가하는 방법중 저의 경우는 항상 부모 게임오브젝트에추가하고 하위에 있는 컴포넌트를 참조할 때는 Awake 또는 Start 함수에서GetComponentInChildren 로 추출해서 변수에 저장한 후 사용합니다. Wrapper 게임오브젝트 하위에 모델을 추가하는 경우는 향후에 다른 모델로 변경을 할 경우편리한 장점이 있습니다.
- 0
- 1
- 12
Hỏi & Đáp
딜레이를 주고 싶을 때 코루틴을 사용하는 이유
안녕하세요. SouthCreate 님, 총구화염 효과에 코루틴을 사용하지 않고 잠시 홀드시킨다면 다른 로직들을 처리할 수 가 없습니다.일시정지한 것처럼 끊어지겠지요. 그래서 멀티쓰레드는 아니지만 쓰레드와 비슷한 처리를 할 수 있는 코루틴을 활용해서 메인 로직(예, Update,...)을 홀드시키지 않고도 지연시킬수 있도록 하기 위해서 코루틴을 활용합니다. 쉽게 말씀드리자면 Unity의 메인 로직(게임 루프) 는 끊임없이 돌아가야 하기 때문에‘딜레이를 주면서도 나머지 게임은 계속 돌아가게’ 해야 함yield return new WaitForSeconds(0.2f); → 0.2초 동안 이 함수(코루틴)는 멈추지만, 게임은 멈추지 않음!정리를 하자면 코루틴은 다음과 같은 용도로 사용합니다.시간지연이 필요한 경우 (예, 10초 뒤에 실행)순차적으로 실행해야 하는 로직 (예, 애니메이션 -> 사운드 -> 다음 동작)비동기적으로 처리 (예, 서버 통신)궁금한 점, 헷갈리는 부분이 있으시다면 다시 질문해주세요.
- 0
- 2
- 38
Hỏi & Đáp
피격 사운드 관련 질문
안녕하세요. Rio Song님, 맞습니다. 정확히 이해하셨습니다. 상대편이 발사한 포탄 발사 소리를 원격의 플레이어에게 들리도록 하고 싶다면 PunRPC Fire 함수에서 사운드를 재생하시면 되세요. 다만, FireAction 함수에서 RPCTarget.AllViaServer로 RPC를 호출했기 때문에 AudioManager.Instance.PlayFireSfx(); 는 Fire 함수로 이동하거나 삭제하지 않으면한번은 로컬에서 재생되고, 한번은 RPC를 통해 재생되는 현상이 발생합니다.
- 0
- 2
- 24
Hỏi & Đáp
7강 재생 관련 문의
안녕하세요. Rio Song님, 불편을 드려 죄송합니다. 우선 재생여부를 확인해 보았습니다. 윈도우 / 맥 환경에서 정상적으로 재생되고 있습니다. 간혹 맥OS를 사용하시는 분들의 경우 아이패드연결(사이드카)한 경우에는 동영상이 재생되지 않는 문제가 있습니다. 웹브라우저의 캐시를 모두 삭제하시고 진행해봐 주세요. 그래도 문제가 해결되지 않는다면, 인프런에 문의하기(https://inf.run/8Mxy4)에 글을 남겨봐주세요.
- 0
- 1
- 31
Hỏi & Đáp
피격 오류
안녕하세요. 양승근님,혹시 Collider 크기가 잘 설정되었는지 확인 해주세요. 그리고 콘솔 뷰에 오류 메시지가 있다면 알려주시면 조금 더 정확한 답변을 드릴수가 있습니다.
- 0
- 2
- 31
Hỏi & Đáp
Spider 사망 시 두 번 폭발관련
안녕하세요. Rio Song님,이 부분은 한번 나왔던 질문이었습니다. 현재 강의 코드를 유니티 최신 버전으로 버전업해서 테스트 해보았습니다. 강의영상처럼 정상 동작하고 있습니다. 동일한 증상이 발생한다면 어떻게든 살펴볼텐데, 저도 답답하네요ㅠㅠ Rio Song님 께서 마지막에 하신 말씀데로 Destroy가 바로 실행되는 것이 아니기 때문에 한번 더 들어 올 가능성도 있습니다. 만약 이 추론이 맞다면 BehaviorGraph에서 수정되어야 할 부분인것 같습니다.추후 이런한 부분을 감안해서 수정본에 반영하도록 하겠습니다.알려주셔서 감사합니다.
- 0
- 2
- 58
Hỏi & Đáp
Player에 Event 연결 관련 질문
안녕하세요. Rio Song님,확인해보니 최신 BehaviorGraph 1.0.10에서는 Event 프로퍼티를 직접 접근하는 방식이 변경되었습니다. ㅠㅠ 우선 아래 코드와 같이 변경해서 적용해주세요. 아직 강의 원본 프로젝트에 적용시켜 보지 않아서 정확하지는 않을 수 있습니다. 원본 강의 프로젝트를 업그레이드 하고 테스트해 본 후 다시 말씀드리겠습니다. [SerializeField] private ApplyDamageToPlayer _applyDamageDamageToPlayer; private Action _handler; private void OnEnable() { _handler = OnPlayerDamaged; _applyDamageDamageToPlayer.RegisterListener(_handler); } private void OnDisable() { _applyDamageDamageToPlayer.UnregisterListener(_handler); }
- 0
- 2
- 52
Hỏi & Đáp
Barrel에 IDamagable 적용 관련 질문
안녕하세요. Rio Song님, Bullet과 충돌해서 Spark 효과는 발생하지만 Raycast 거리가 짧다면 Barrel에 데미지가 들어가지 않는 경우에 어떻게 처리하는 것이 좋을지에 대한 질문이신것 같습니다.이 문제는 생각하신데로 Raycast의 거리를 늘리는 방법이 가장 간단합니다. 다른 방법으로는 강의에서 말씀드린 물리적인 충돌이 발생했을 때 IDamageable 을 Invoke 시키는 방법을 사용할 수도 있습니다.
- 0
- 2
- 39
Hỏi & Đáp
7강 재생
안녕하세요. 양승근님,일부 영상이 재생되지 않는 현상을 저도 발견했습니다. 현재 인프런측에 연락을 취해 두었습니다.불편을 드려 죄송합니다.
- 0
- 2
- 50