주요 경력
現 2014 ~ 2015, 2022 ~ 호서대학교 게임학과 초빙교수
現 2016 ~ 공주대학교 게임디자인학과 강의전담교수
現 2022 ~ 유니티 공식 인증 강사 (Unity Certified Instructor)
前 2023 포항공과대학교 전자전기공학과 외래교수
前 2022 우송대학교 테크노미디어융합학부 (게임멀티미디어전공) 외래교수
前 2019 공주대학교 컴퓨터공학부 외래교수
前 2018 상명대학교 사진영상콘텐츠학과 외래교수
前 2017 계원예술대학교 게임미디어과 외래교수
前 2016, 2020~2021 배재대학교 게임학과 외래교수
前 2016남서울대학교 VRAR 외래교수
前 2016 한국영상대학교 게임애니메이션과 외래교수
前 2015 ~ 2018 백석대학교 정보통신학부 외래교수
"고박사의 유니티 노트" 유튜브 운영
https://www.youtube.com/@unitynote
소개
게임 프로그래밍 전공으로 게임 개발, 유니티 엔진 강의를 하고 있습니다.
강의 분야 : 유니티 엔진(기초, 2D/3D 게임 개발, VR/AR), 서버, 인공지능, 셰이더, 게임학개론 등
강의
수강평
- 따라하면서 배우는 고박사의 유니티 하이퍼캐주얼게임 시리즈 02
- [유니티6] 따라하면서 배우는 고박사의 2D 플랫포머 게임 제작
- 따라하면서 배우는 고박사의 유니티 하이퍼캐주얼게임 시리즈 02
- 따라하면서 배우는 고박사의 유니티 하이퍼캐주얼게임 시리즈 04
게시글
질문&답변
02. 게임오브젝트 물리와 충돌 마지막 sun예제의 움직임
OnCollisionStay2D(), OnTriggerStay2D()의 경우 설명은 충돌 중일 때 매 프레임 호출이지만"물리적 힘이 가해지고 있을 때"라는 조건이 하나 더 필요합니다.서로 충돌 중이지만 플레이어가 멈춰있어서 물리적 힘이 가해지지 않으면 Stay의 유지 시간은 1초 정도입니다. 계속 유지가 되려면 trigger 물체 위에서 플레이어가 충돌 범위를 벗어나지 않고 충돌이 유지되는 범위 안에서 조금씩 계속 움직여줘야 합니다.
- 0
- 2
- 25
질문&답변
강의 01-02에서 프리팹 렌더링 오류
현재 사용 중인 유니티 버전과 프로젝트를 생성할 때 템플릿 정보를 알 수 있을까요?정상적으로 나오려면 유니티 6000.0.23f1 이상 버전(유니티 6 정식버전), Universal 2D 템플릿으로 생성해야 합니다.
- 0
- 2
- 16
질문&답변
02-05 레벨시작(마지막 강의)에서 SelectLevelController오브젝트의 SelectLevelController 컴포넌트조작
SelectLevelController 스크립트에 작성해둔 ResetData()라는 저희가 만든 메소드입니다. 메소드 앞에 [ContextMenu("..")] 와 같이 어트리뷰트를 작성하면해당 메소드를 유니티 에디터에서 메뉴와 같은 형태로 실행할 수 있습니다.
- 0
- 1
- 52
질문&답변
02-07 별아이템을 bool[] 로 한 이유가 궁금해요.
스테이지마다 3개의 별이 배치되어 있고, 0, 1, 2번 별로 구분됩니다. 0번 별을 획드하면 0번 별 UI 활성화, 1번 별을 획득하면 1번 별 UI 활성화와 같이뒤에서 UI를 출력할 때 별 획득 여부에 따라 지정된 순번의 별 UI가 활성화되기 때문에 배열을 이용해 각 별의 획득 여부를 관리합니다.
- 0
- 1
- 80
질문&답변
02-02 플레이어 체력에서 if(current >1)을 if(current > 0) 로...
if ( current > 1 )이 맞습니다. 하트가 3개 있으니 3대 맞으면 죽어야 하고,current가 3일 때 맞으면 current는 2가 됩니다. (1대)current가 2일 때 맞으면 current는 1이 됩니다. (2대)current가 1일 때 맞으면 죽습니다. (3대)
- 0
- 1
- 66
질문&답변
03-01 Hidden Tilmap에서
알파 값이 1일 때 0까지 바뀌는 시간이 1초입니다.유저가 항상 알파 값이 1일 때 충돌해서 0으로 바뀌고, 0일 때 밖으로 나가서 1로 바뀌진 않습니다. 영상 마지막의 게임 실행과 같이 왔다 갔다 하면서 알파 값이 바뀌는 도중에충돌/충돌 해제 할 수 있기 때문에알파 값이 0.5일 때는 0.5초 동안 Fade 효과를 재생하고,알파 값이 0.2일 때는 0.2초 동안 Fade 효과를 재생하기 위해tilemap.color.a를 Fade 되는 시간으로 설정합니다.
- 0
- 2
- 67
질문&답변
02-04 점프발판 Animation 뷰에서 이미지 나오게 하는 방법이 궁금해요.
지금 이미지 기준으로 왼쪽에 목록을 접거나 여는 "▶" 이렇게 생긴 아이콘을 클릭하면 됩니다.
- 0
- 1
- 72
질문&답변
02-03 추락하는 발판에서 isKinematic = true;로 하면, 중력영향 안받으니
PlatformDrop 클래스에서 OnRespawn() 메소드에 있는rigid2D.velocity = Vector2.zero; 문장을 지우고 실행해보면발판을 밟아서 떨어뜨리고, 다시 리스폰 되었을 때 속력 값이 초기화 안되서리스폰 되자마자 아래로 떨어집니다.
- 0
- 2
- 94
질문&답변
02-03 추락하는 발판의 Mathf.PingPong 메소드 설명문 수정해야 겠어요.
Mathf.PingPong() 메소드는 값이 점진적으로 증가해 두 번째 매개변수 length값을 넘어가게 되면값이 0.0 ~ length까지 왔다 갔다 하게 됩니다.length가 1일 때t가 0이면 0t가 1이면 1t가 1.1이면 0.9t가 1.2이면 0.8..t가 2이면 0t가 2.1이면 0.1과 같이 반환 값이 좌우로 왔다갔다(PingPong) 됩니다.
- 0
- 2
- 103
질문&답변
02-02 플레이어와 발판: PlatformBase 상속클래스 어태치문제
Platform_00_Moving의 경우플레이어가 발판을 밟았을 때(충돌했을 때) 자식으로 등록하는 것과플레이어가 발판과 충돌이 해제될 때 자식을 해제하는 두 가지 액션이 필요한데 PlatformBase는 발판과 충돌했을 때 UpdateCollision()을 호출한다. 는 처리만 되어 있습니다. 이 경우 추후에 다른 발판도 충돌했을 때, 충돌 해제할 때와 같이 두 가지 액션이 필요하면PlatformBase에 2가지 액션에 대한 처리를 구현해둘 수도 있는데현재 예제에서는 Platform_00_Moving만 두 가지 액션이 필요하고,결국 충돌이 해제될 때는 OnCollisionExit2D() 메소드를 호출해서 구현해야 하기 때문에PlatformMoving 클래스는 부모로 PlatformBase를 상속받지 않고발판과 충돌할 때(OnCollisionEnter2D), 충돌이 해제될 때(OnCollisionExit2D)를이벤트 메소드로 처리합니다. 그래서 Platform_00_Moving 오브젝트를 밟았을 때는 PlayerController 클래스에 있는if ( .. TryGetComponent() .. ) 조건문 내부를 실행하지 않습니다. 다른 발판들처럼 발판이니까 PlatformBase를 상속 받아서 처리해야지! 라고 한다면(1) 충돌했을 때는 UpdateCollision() 메소드를 재정의하고,충돌 해제할 때는 OnCollisionExit2D() 메소드로 처리한다.or(2) PlatformBase 클래스에 충돌했을 때와 충돌 해제할 때의 2가지 액션 처리를 메소드로 정의한다.다만 이 경우에는 다른 발판들도 충돌 해제에 대한 메소드 재정의를 넣어줘야 하는데 이동 발판 외에는 액션이 없어서 메소드를 비워둔 상태로 둬야 하기 때문에 상속을 받지 않고 별개로 처리하는 방향으로 작성했습니다.
- 0
- 2
- 75