The Unity Tutorial For Complete Beginners
-
0:00 - 0:06안녕하세요, 제 이름은 Mark입니다.
저는 수년동안 Unity같은 소프트웨어를 이용하여 -
0:06 - 0:13게임을 만들고 싶었습니다. Unity는 "컵헤드" ,"네온 화이트",
"튜닉"; -
0:13 - 0:19"아우터 와일즈", "하스스톤", "파이어워치",
심지어 포켓몬 다이다몬드 리메이크에도 사용되었습니다. -
0:19 - 0:26그런데 저는 항상 긴 튜토리얼 영상을 볼 때마다 잠이 오더군요
-
0:26 - 0:31전 다른 사람이 하는걸 보면서 따라하는 것보다
직접 시도해보는게 적성에 더 맞더라고요 -
0:31 - 0:38그래서 작년에 3단계로 구성된 해결법을 만들었는데,
꽤 효과가 좋았습니다 -
0:38 - 0:451. Unity의 기본'만' 배우기,
2. 간단한 시험으로 기본 익히기, -
0:45 - 0:513. 나머지는 게임을 만들면서 알아서 배우기.
제가 해봤더니 정말로 되더군요! -
0:51 - 0:57다른 모바일 게임을 배끼는 것부터 시작해서,
자석을 이용한 저만의 퍼즐 플랫포머 게임을; -
0:57 - 1:03만들기까지 1년정도 걸렸습니다
-
1:03 - 1:09그런데 Unity같이 복잡한 소프트웨어의 기본을
어떻게 배워야 하는지 -
1:09 - 1:12의문점이 들겁니다
-
1:12 - 1:15저는 대부분의 게임의 들어가는
공통적인 요소를 리스트로 만들었습니다 -
1:15 - 1:20캐릭터를 화면에 띄우는 방법;
-
1:20 - 1:24캐릭터를 움직이게 하는 방법,
뭔갈 생성하거나 없애는 방법; -
1:24 - 1:29캐릭터의 판정, 게임 오버, 애니매이션, 사운드 등등;
-
1:29 - 1:34전 이 방법들을
긴 튜토리얼 영상, Unity 문서; -
1:34 - 1:37검색, 그리고 수많은 시행착오를 겪으면서 배웠습니다
-
1:37 - 1:42이 영상의 목적은 여러분이 그걸 겪지 않게 만드는 것입니다
-
1:42 - 1:46이 영상은 제가 Unity를 배울 적에 봤다면
좋았을 영상입니다 -
1:46 - 1:52앞으로 40분동안 우리는 Unity를 이용해
플래피 버드를 만들겁니다 -
1:52 - 1:57플래피 버드를 만들고 싶어서가 아니라,
플래피 버드를 만들려면 -
1:57 - 2:02제가 아까 말한 요소인 뭔갈 생성하는 것부터
게임 오버까지 전부 필요하기 때문입니다 -
2:02 - 2:08이 튜토리얼에서는 Unity 설치부터 UI 이해;
-
2:08 - 2:14프로그래밍, 그리고 당신의 지인들과 공유할 수 있도록
게임을 빌드하는 것까지 배우게 됩니다 -
2:14 - 2:19그리고 튜토리얼이 끝난 후, 간단한 시험을 통해
기본을 익히게 되고, -
2:19 - 2:26그 후로는 스스로 배우는게 가능해질겁니다
괜찮은 것 같나요? 그렇다면 이제 시작하죠. -
2:27 - 2:34Unity를 다운받는 것부터 시작합시다.
다운로드 후 Unity Hub를 설치하세요 -
2:35 - 2:40Unity를 사용하려면 계정이 필요합니다.
계정을 만든 후, -
2:40 - 2:46Unity 에디터 설치 창이 나올겁니다.
설치하세요 -
2:46 - 2:49*(이 영상에선 2021.3을 사용했지만,
2022를 사용해도 상관없습니다) -
2:49 - 2:52*(설치 시 약 15분정도 걸립니다
너무 오래 걸리면, Unity Hub를 관리자 권한으로 실행해보세요) -
2:52 - 2:59아직 끝난게 아닙니다. 옆에 톱니바퀴 아이콘을 누르고 모듈을 누르면
-
3:00 - 3:05Visual Studio가 체크되어있는게 보일겁니다
저희는 이 프로그램으로 -
3:05 - 3:11코드를 작성할 겁니다
Visual Studio를 설치한 후, 이 화면에서 -
3:11 - 3:15아래로 스크롤하고
"Unity를 활용한 게임 개발"은 체크하고, Unity Hub는 해제합니다 -
3:15 - 3:20왜냐면 Hub는 이미 설치 되있으니까요.
Visual Studio는 계정이 필요없으니 이건 스킵하고, -
3:20 - 3:24어차피 나중에 열거니 이 창은 닫아도 됩니다
-
3:24 - 3:31이제 Unity Hub에서 '새 프로젝트'를 누르고,
'모든 템플릿'을 선택하고 '2D 코어'를 선택합니다 -
3:31 - 3:36'2D 코어'는 2D 게임을 만드는데 적합한
빈 프로젝트입니다 -
3:36 - 3:41이름을 정하고, '프로젝트 생성' 버튼을 누르세요
-
3:43 - 3:49첫번째로, 우리는 Unity의 UI를 배울겁니다
-
3:49 - 3:52다른 패널들을 탐방하면서, 화면에 새를 띄울겁니다
-
3:52 - 3:59이게 Unity의 기본 레이아웃입니다
4개의 패널로 나뉘어져 있죠 -
4:00 - 4:05아래에는 프로젝트 패널이 있습니다
여기에는 게임에 들어가는 모든 요소가 포함됩니다 -
4:05 - 4:13예를 들면 스프라이트, 사운드, 스크립트, 타일, 폰트 등이 있습니다
이중 일부는 Unity에서 직접 만들거지만 -
4:13 - 4:18다른 곳에서 파일을 드래그해도 됩니다
-
4:18 - 4:23저는 포토샵에서 새와 파이프의 스프라이트를 만든 후
-
4:23 - 4:28이걸 프로젝트에 드래그했습니다
전 여러분이 스프라이트를 직접 만들면 좋겠지만 -
4:28 - 4:32만약 그림을 잘 못그리겠다면
설명에 에셋 다운로드 링크를 확인하세요 -
4:32 - 4:39왼쪽에는 계층 구조 패널이 있습니다
여기에는 현재 '장면'에 있는 것들이 포함되며 -
4:39 - 4:43'장면'은 대부분의 게임에서 레벨의 역할을 합니다.
우선 새를 만드는 것부터 시작합시다 -
4:43 - 4:50계층 구조에서 빈 오브젝트 생성을 누르면
빈 GameObject가 생성됩니다 -
4:50 - 4:57GameObject는 투명한 컨테이너와 같습니다
위치를 지정하거나 회전할 수 있고; -
4:57 - 5:03크기를 조절할수도 있습니다. 그리고
컨테이너 안에 컴포넌트를 넣어 기능을 추가할 수 있죠 -
5:03 - 5:08예를 들어, '스프라이트 렌더러' 컴포넌트를 넣으면
GameObject에 이미지를 넣을 수 있죠 -
5:08 - 5:13이 게임의 모든 것들은 '컴포넌트가 있는 GameObject'로
구성되어 있습니다 -
5:13 - 5:16새, 파이프, 심지어 UI와 카메라까지
-
5:16 - 5:23이 모든 것들은 오른쪽의 인스펙터에서 관리할 수 있습니다
-
5:23 - 5:28빈 GameObject를 선택한 후, 위에서 이름을 정할 수 있습니다
-
5:28 - 5:35이름은 그냥 Bird라고 하죠
그리고 Transform에서 위치, 기울기, 크기를 조절할 수 있습니다 -
5:35 - 5:42이제 '컴포넌트 추가'를 누르고, Rendering을 누르고
Sprite Renderer를 선택하세요 -
5:42 - 5:46이걸 작동하게 하려면, 스프라이트를 선택해야 하는데,
그냥 프로젝트 패널에서 새 이미지를 -
5:46 - 5:50빈칸에 드래그하면, 그래픽이 생겼네요!
-
5:50 - 5:53그래픽은 중앙에 있는 씬 패널에 나타납니다
-
5:53 - 5:57씬에서는 현재 씬에 무엇이 있는지 볼 수 있고,
-
5:57 - 6:02이 기능들을 이용하여 움직이거나 회전시킬 수 있습니다
-
6:02 - 6:07이 섹션에는 '게임'이라는 탭이 있는데,
여기선 게임을 실행할때 메인 카메라에서 -
6:07 - 6:13어떻게 보이는지 확인할 수 있습니다
그리고 여기에선 해상도나 화면비를 설정할 수 있습니다 -
6:13 - 6:19다른 화면에서 어떻게 보이는지 알 수 있죠
- 저는 1920x1080을 선택하겠습니다 -
6:19 - 6:24새가 너무 많은 공간을 차지하네요
새의 크기를 줄일 수도 있지만, 저희는 -
6:24 - 6:30카메라를 축소할 겁니다. 카메라 또한
계층 구조에 있는 GameObject이기에 이를 선택하면 -
6:30 - 6:36Camera 컴포넌트에서 수치를 조절할 수 있습니다
'크기'를 높이면 카메라가 축소됩니다 -
6:36 - 6:39그리고 배경 색도 바꾸겠습니다.
좋네요 -
6:39 - 6:44이제 위에 있는 Play 버튼을 누르면
세상에서 가장 -
6:44 - 6:48지루한 게임이 시작됩니다
네. 이제 덜 지루하게 만들어 보죠 -
6:49 - 6:55잠깐 되돌아봅시다
Unity에는 4개의 패널이 있고 그중 프로젝트에는 모든 요소가 들어가고, -
6:55 - 7:01계층 구조에는 현재 레벨에 있는 GameObject가 표시되고,
인스펙터에는 -
7:01 - 7:05GameObject를 마음대로 조절할 수 있고,
씬에서는 레벨을 볼 수 있다. -
7:05 - 7:11그리고 GameObject는 Sprite Renderer같은
컴포넌트를 담을 수 있는 투명한 컨테이너다. -
7:12 - 7:16두번째로, 저희는 더 많은 컴포넌트를 이용하여
-
7:16 - 7:19새를 중력에 영향을 받는 물리 오브젝트로 만들고
-
7:19 - 7:23코드를 이용하여 스페이스 바를 누를 떄마다
새를 위로 날게 만들겁니다 -
7:23 - 7:30이제 새에다가 Rigidbody2D 컴포넌트를 추가합시다.
-
7:30 - 7:37이 컴포넌트는 새를 물리 오브젝트로 만들어 줍니다.
그래서 Play 버튼을 누르면 새가 화면 밖으로 떨어집니다. -
7:37 - 7:42이 새가 다른 오브젝트와 상호작용하게 만들려면
Collider가 필요합니다 -
7:42 - 7:44Circle Collider 2D를 추가합시다
-
7:44 - 7:50씬을 보면 초록색으로 된 선이 보입니다
중심이 약간 안맞기 때문에; -
7:50 - 7:55오프셋을 조절해서 움직이겠습니다
여기서 게임 디자인 팁을 주자면 -
7:55 - 8:01Collider(판정)를 이미지보다 조금 작게 만들면
플레이어가 파이프에 아주 살짝 닿았더라도 -
8:01 - 8:05게임 오버가 되지 않기에
빡센 느낌이 줄어들게 됩니다 -
8:05 - 8:11마지막으로, 스크립트를 추가하겠습니다
스크립트를 활용하면 사실상 나만의 컴포넌트를 -
8:11 - 8:17만들 수 있게 되지만, 우리가 코드를 이용해서 직접 만들어야 합니다
컴포넌트 추가에서 New Script를 선택하고, -
8:17 - 8:22이름은 BirdScript라고 하겠습니다.
만든 후, 스크립트를 더블클릭하면 -
8:22 - 8:27전에 설치한 Visual Studio가 열릴겁니다
-
8:27 - 8:31프로그래밍의 세계에 온걸 환영합니다!
너무 무섭게 생각하지 마세요; -
8:31 - 8:35천천히 설명해드릴 겁니다.
저희는 C#으로 코드를 작성할겁니다 -
8:35 - 8:41먼저 Start와 Update, 이 2개에 대해
알아보겠습니다 -
8:41 - 8:47Start는 (이 스크립트가 활성화 돼있으면) 처음으로 실행되는 코드이고,
-
8:47 - 8:53단 한번만 실행됩니다.
Update는 (이 스크립트가 활성화 돼있으면) 항상 실행되는 코드이고, -
8:53 - 8:57매 프레임마다 코드가 실행됩니다.
-
8:58 - 9:03아무튼, 저희가 코드로 작성할 건
- Unity로 다시 돌아가보면 -
9:03 - 9:08컴포넌트에 있는 숫자들이나 텍스트를 마음대로 조절할 수 있죠
-
9:08 - 9:13저희는 코드를 이용하여
게임이 실행되는 동안 이것들을 조절할 겁니다 -
9:13 - 9:18간단한 예시를 들자면
-
9:18 - 9:25Start에 gameObject(오른쪽 위에 있는걸 의미함)를 치고,
점[.]을 치면 리스트가 보일겁니다 -
9:25 - 9:26*(리스트가 안보이면, Unity 위에 '창'->'패키지 관리자'->아래로 내려서 'Visual Studio Editor' 선택 후 설치
그후 Unity 위에 '편집'->'환경 설정'->'외부 툴'->Visual Studio 선택 후 전부 체크하고 재실행) -
9:26 - 9:31이중 대부분은 인스펙터에 있는걸 나타냅니다
예를 들면 정적(isStatic); -
9:31 - 9:39태그, 레이어, 이름이 있죠
name을 선택하고, [=] 쓰고, 큰따옴표[" "]로 -
9:39 - 9:45새의 이름을 넣으면 됩니다.
마지막으로, 명령 끝엔 항상 세미콜론[;]이 있어야 합니다 -
9:45 - 9:50그리고 스크립트를 저장하는것도 잊지 마세요
-
9:50 - 9:54이제 게임을 실행하면... GameObject의 이름이
바뀌였네요. 좋습니다 -
9:55 - 9:59네, 이제 그 코드는 지우세요.
방금 쓴 코드는 우리가 코드로 -
9:59 - 10:03게임과 대화할 수 있다는 걸 알려줍니다
저희는 코드를 작성하여 누구와 대화할지 -
10:03 - 10:08대상을 정할 수 있고, 대화의 주제도 정하고,
-
10:08 - 10:14그 후 명령을 정할 수 있습니다
저희는 이 짓을 많이 하게 될겁니다. -
10:15 - 10:20아무튼 저희가 진짜로 해야할 일은,
Rigidbody2D 컴포넌트에서 Info 아래에 보면 -
10:20 - 10:23Velocity가 회색으로 표시된게 보일겁니다
-
10:23 - 10:27저희는 위쪽으로 Velocity를 주는 코드를 작성해서
새가 하늘로 날 수 있게 만들겁니다 -
10:27 - 10:33문제는, 이 스크립트는 GameObject의
윗부분과 Transform끼리만 대화할 수 있고 -
10:33 - 10:37다른 컴포넌트의 존재도 모릅니다
-
10:37 - 10:42그래서 이 스크립트에 RigidBody2D를 위한 공간을 만들어야 합니다
-
10:42 - 10:48그러면 대화를 할 수 있게 되고 명령을 보낼 수 있게 되며
이를 '레퍼런스'라 부릅니다 -
10:48 - 10:52Class와 Start 사이에 레퍼런스를 작성할 겁니다:
-
10:52 - 10:58public RigidBody2D myRigidBody;
-
11:01 - 11:06이제 RigidBody2D를 보관할 공간이 생겼고,
다른 Rigidbody2D와 구분하기 위해 -
11:06 - 11:12공간의 이름도 정했습니다
public으로 정했기 때문에 스크립트 밖에서도 -
11:12 - 11:18공간을 건드릴 수 있습니다
저장하고 Unity로 돌아가면, 스크립트 컴포넌트에 -
11:18 - 11:25RigidBody2D를 위한 공간이 생긴걸 볼 수 있습니다
이제 RigidBody2D 컴포넌트를 빈칸에 드래그하면, -
11:25 - 11:29이제 스크립트와 RigidBody간의 통신선이 생겼습니다.
-
11:29 - 11:36다시 Visual Studio로 돌아와서, Update에
myRigidBody 그리고 점[.]을 치면 -
11:36 - 11:40이 많은 대화 주제들을 보세요
angularDrag, gravityScale, mass; -
11:40 - 11:46이것들이 전부 RigidBody2D에 있는 속성들입니다
우리가 원하는건 velocity죠 -
11:46 - 11:51전에 했던 것처럼 [=]을 쓰고,
-
11:51 - 11:57여기에서는 Vector라는 2D 공간에서 위치를 나타내는
값을 이용할 겁니다 -
11:57 - 12:02여기서 Vector는 새가 나는 방향을 나타내는데 사용할겁니다
-
12:02 - 12:09저희는 새가 위로 나는걸 원하기 때문에,
(0,1)이 좋겠네요. 저는 Vector2.up을 이용할 겁니다 -
12:09 - 12:14*Vector2.up은 Vector2(0,1)과 같은 의미입니다
그리고 힘을 주려면 -
12:14 - 12:20Vector에 힘을 곱하면 됩니다
힘은 대충 10 정도면 충분할 겁니다 -
12:20 - 12:25그리고, 전에 말했지만, Update 안에 있는 코드는
매 프레임마다 실행되기 때문에 -
12:25 - 12:32저장하고 플레이 해보면... 영원히 날아갑니다
-
12:32 - 12:36하지만 저희가 원하는건 스페이스 바를 누를 때만
새가 날아가게 하는 것이죠 -
12:36 - 12:41이제 프로그래밍에서 가장 중요한 요소를 사용할 때입니다:
바로 if 입니다. -
12:41 - 12:43if는 마치 관문과도 같습니다
-
12:43 - 12:48게임이 특정 조건을 만족하지 못한다면,
매 프레임마다 그 코드는 완전히 무시됩니다 -
12:48 - 12:52반대로, 관문에 적혀 있는 특정 조건을 만족한다면,
-
12:52 - 12:57통과할 수 있게 되고 코드가 실행됩니다.
-
12:57 - 13:01저희가 원하는건 "만약 플레이어가 스페이스 바를 누르면,
위쪽으로 velocity를 더한다"죠 -
13:01 - 13:06if를 적고 괄호 안에 조건을 적으면 됩니다
-
13:06 - 13:12여기서는 컴포넌트와 대화하는게 아니라 Unity와 대화하게 됩니다
정확히는 Unity의 인풋 시스템이죠 -
13:12 - 13:20(Input.GetKeyDown, 그리고 괄호 안에 KeyCode.Space)
이렇게 하면 Unity에게 -
13:20 - 13:25이 프레임에 스페이스를 눌렀는지 물어볼 수 있습니다
그리고 마지막에 ==true 로 마무리합시다 -
13:25 - 13:31참고로 등호를 1개[=] 만 사용하면
왼쪽에 있는 걸 -
13:31 - 13:35오른쪽과 같게 만들라는 의미이고,
2개[==]를 사용하면 왼쪽에 있는게 오른쪽에 있는것과 같은지 -
13:35 - 13:39여부를 확인하라는 의미입니다.
괜찮죠? -
13:39 - 13:44아무튼, "만약 스페이스가 눌리면..."
-
13:44 - 13:49그 후는 중괄호{}를 사용해야 합니다.
중괄호 안에 위로 velocity를 주는 코드를 쓰면 됩니다 -
13:50 - 13:54이제 Update에서 - 매 프레임마다 게임이 관문에 가서
-
13:54 - 13:59"스페이스가 눌렸니?"라는 질문을 받은 후, 만약 맞다면
코드가 실행되고 새는 날게 되겠죠, 아니라면 -
13:59 - 14:03중괄호 안에 있는 코드는 무시하고,
다음 프레임에 다시 시도하게 될겁니다 -
14:03 - 14:08이제 저장하고 Unity로 돌아와서 플레이해보면, 짜잔:
-
14:08 - 14:11이제 스페이스를 누를 때마다 새가 위로 올라가네요
-
14:11 - 14:17이제 저희는 Input에 반응하는 캐릭터를 만들었습니다.
이것은 게임입니다. 좋아요! -
14:17 - 14:23그런데, 조작감이 좀 쓰레기같네요
원작 플래피 버드와는 전혀 다른 느낌입니다 -
14:23 - 14:32그러니 숫자를 좀 바꿔볼까요
저장, 플레이, 그래도 별로네, 정지, 숫자 번경; -
14:32 - 14:37저장,... 그런데 이건 너무 느리고 바보같네요
덜 바보같은 짓을 해봅시다 -
14:37 - 14:42먼저, 함수를 만들겁니다. 스크립트의 윗부분의
RigidBody 레퍼런스 바로 밑에 -
14:42 - 14:47public float flapStrength를 만듭시다
-
14:47 - 14:52float란 부동소수점(floating point number)를 뜻합니다.
간단히 말하면 소수점이 있는 숫자입니다 -
14:52 - 14:58
-
14:58 - 15:02
-
15:02 - 15:07
-
15:07 - 15:11
-
15:11 - 15:15
-
15:15 - 15:19
-
15:19 - 15:23
-
15:23 - 15:27
-
15:27 - 15:30
-
15:30 - 15:31
-
15:31 - 15:36
-
15:36 - 15:41
-
15:41 - 15:45
-
15:45 - 15:50
-
15:50 - 15:56
-
15:56 - 16:02
-
16:02 - 16:05
-
16:05 - 16:08
-
16:09 - 16:14
-
16:14 - 16:18
-
16:18 - 16:24
-
16:24 - 16:29
-
16:29 - 16:32
-
16:32 - 16:35
-
16:35 - 16:40
-
16:40 - 16:45
-
16:45 - 16:51
-
16:51 - 16:55
-
16:56 - 17:00
-
17:01 - 17:07
-
17:07 - 17:13
-
17:13 - 17:19
-
17:19 - 17:24
-
17:24 - 17:31
-
17:31 - 17:35
-
17:35 - 17:39
-
17:41 - 17:46
-
17:46 - 17:51
-
17:51 - 17:56
-
17:56 - 18:03
-
18:03 - 18:09
-
18:09 - 18:15
-
18:15 - 18:20
-
18:21 - 18:26
-
18:26 - 18:31
-
18:31 - 18:37
-
18:39 - 18:44
-
18:44 - 18:48
-
18:48 - 18:53
-
18:53 - 18:59
-
18:59 - 19:03
-
19:03 - 19:08
-
19:08 - 19:12
-
19:12 - 19:16
-
19:16 - 19:23
-
19:23 - 19:31
-
19:31 - 19:36
-
19:36 - 19:41
-
19:41 - 19:45
-
19:45 - 19:49
-
19:49 - 19:54
-
19:54 - 19:59
-
19:59 - 20:05
-
20:05 - 20:11
-
20:11 - 20:17
-
20:17 - 20:22
-
20:22 - 20:26
-
20:26 - 20:29
-
20:31 - 20:36
-
20:36 - 20:42
-
20:42 - 20:47
-
20:47 - 20:51
-
20:51 - 20:54
-
20:54 - 20:59
-
20:59 - 21:04
-
21:04 - 21:08
-
21:08 - 21:12
-
21:12 - 21:18
-
21:18 - 21:23
-
21:23 - 21:28
-
21:28 - 21:33
-
21:33 - 21:38
-
21:38 - 21:42
-
21:42 - 21:47
-
21:48 - 21:53
-
21:53 - 21:56
-
21:56 - 22:00
-
22:00 - 22:05
-
22:05 - 22:10
-
22:10 - 22:15
-
22:15 - 22:20
-
22:20 - 22:23
-
22:23 - 22:29
-
22:29 - 22:35
-
22:35 - 22:40
-
22:40 - 22:43
-
22:43 - 22:48
-
22:48 - 22:53
-
22:53 - 22:58
-
22:58 - 23:02
-
23:02 - 23:05
-
23:05 - 23:10
-
23:10 - 23:15
-
23:15 - 23:23
-
23:23 - 23:28
-
23:28 - 23:33
-
23:33 - 23:39
-
23:39 - 23:44
-
23:44 - 23:50
-
23:50 - 23:55
-
23:55 - 24:01
-
24:01 - 24:06
-
24:06 - 24:10
-
24:10 - 24:15
-
24:15 - 24:21
-
24:21 - 24:28
-
24:28 - 24:32
-
24:32 - 24:38
-
24:39 - 24:45
-
24:45 - 24:49
-
24:49 - 24:53
-
24:53 - 24:58
-
24:58 - 25:04
-
25:04 - 25:09
-
25:09 - 25:14
-
25:14 - 25:20
-
25:20 - 25:22
-
25:22 - 25:30
-
25:30 - 25:37
-
25:38 - 25:41
-
25:41 - 25:47
-
25:47 - 25:54
-
25:54 - 25:59
-
25:59 - 26:05
-
26:05 - 26:12
-
26:14 - 26:20
-
26:20 - 26:25
-
26:25 - 26:30
-
26:30 - 26:35
-
26:35 - 26:40
-
26:40 - 26:45
-
26:45 - 26:51
-
26:51 - 26:58
-
26:58 - 27:06
-
27:06 - 27:13
-
27:16 - 27:19
-
27:19 - 27:24
-
27:24 - 27:33
-
27:33 - 27:39
-
27:39 - 27:45
-
27:45 - 27:50
-
27:52 - 27:53
-
27:53 - 27:56
-
27:56 - 27:59
-
27:59 - 28:04
-
28:04 - 28:09
-
28:09 - 28:13
-
28:13 - 28:17
-
28:17 - 28:22
-
28:22 - 28:27
-
28:27 - 28:31
-
28:32 - 28:36
-
28:36 - 28:39
-
28:39 - 28:43
-
28:43 - 28:47
-
28:47 - 28:53
-
28:53 - 28:58
-
28:58 - 29:01
-
29:01 - 29:07
-
29:07 - 29:12
-
29:12 - 29:17
-
29:17 - 29:22
-
29:22 - 29:28
-
29:28 - 29:34
-
29:34 - 29:40
-
29:40 - 29:45
-
29:47 - 29:49
-
29:49 - 29:53
-
29:53 - 29:57
-
29:57 - 30:00
-
30:00 - 30:03
-
30:04 - 30:09
-
30:09 - 30:14
-
30:14 - 30:18
-
30:18 - 30:23
-
30:23 - 30:28
-
30:28 - 30:30
-
30:30 - 30:35
-
30:35 - 30:41
-
30:41 - 30:46
-
30:46 - 30:52
-
30:52 - 30:59
-
30:59 - 31:05
-
31:05 - 31:10
-
31:10 - 31:16
-
31:16 - 31:20
-
31:20 - 31:25
-
31:26 - 31:31
-
31:31 - 31:39
-
31:39 - 31:46
-
31:46 - 31:52
-
31:53 - 31:57
-
31:57 - 32:03
-
32:05 - 32:10
-
32:11 - 32:14
-
32:15 - 32:19
-
32:19 - 32:23
-
32:23 - 32:28
-
32:28 - 32:33
-
32:33 - 32:38
-
32:38 - 32:42
-
32:42 - 32:45
-
32:45 - 32:51
-
32:51 - 32:56
-
32:56 - 33:01
-
33:01 - 33:06
-
33:06 - 33:14
-
33:14 - 33:19
-
33:19 - 33:26
-
33:26 - 33:30
-
33:30 - 33:34
-
33:34 - 33:41
-
33:41 - 33:46
-
33:46 - 33:51
-
33:51 - 33:57
-
33:57 - 34:01
-
34:01 - 34:06
-
34:06 - 34:08
-
34:08 - 34:13
-
34:13 - 34:17
-
34:17 - 34:24
-
34:24 - 34:30
-
34:30 - 34:35
-
34:35 - 34:37
-
34:37 - 34:47
-
34:47 - 34:51
-
34:51 - 34:54
-
34:54 - 34:58
-
34:58 - 35:02
-
35:03 - 35:09
-
35:09 - 35:14
-
35:14 - 35:19
-
35:19 - 35:23
-
35:23 - 35:28
-
35:29 - 35:34
-
35:35 - 35:41
-
35:41 - 35:47
-
35:47 - 35:53
-
35:53 - 35:58
-
35:58 - 36:04
-
36:04 - 36:11
-
36:11 - 36:15
-
36:15 - 36:20
-
36:23 - 36:27
-
36:27 - 36:33
-
36:33 - 36:39
-
36:39 - 36:45
-
36:45 - 36:50
-
36:50 - 36:55
-
36:55 - 36:59
-
36:59 - 37:03
-
37:03 - 37:07
-
37:07 - 37:13
-
37:13 - 37:14
-
37:14 - 37:18
-
37:18 - 37:23
-
37:23 - 37:26
-
37:26 - 37:30
-
37:30 - 37:34
-
37:34 - 37:37
-
37:37 - 37:42
-
37:42 - 37:47
-
37:47 - 37:51
-
37:51 - 37:57
-
37:57 - 37:59
-
38:01 - 38:07
-
38:07 - 38:11
-
38:11 - 38:16
-
38:17 - 38:21
-
38:21 - 38:28
-
38:31 - 38:37
-
38:37 - 38:42
-
38:43 - 38:48
-
38:48 - 38:54
-
38:54 - 38:59
-
39:00 - 39:02
-
39:02 - 39:07
-
39:07 - 39:12
-
39:12 - 39:18
-
39:18 - 39:23
-
39:24 - 39:30
-
39:30 - 39:35
-
39:35 - 39:43
-
39:45 - 39:48
-
39:49 - 39:53
-
39:57 - 40:03
-
40:03 - 40:08
-
40:08 - 40:12
-
40:13 - 40:16
-
40:16 - 40:23
-
40:23 - 40:28
-
40:28 - 40:30
-
40:31 - 40:39
-
40:39 - 40:42
-
40:42 - 40:48
-
40:48 - 40:53
-
40:53 - 40:58
-
40:58 - 41:03
-
41:03 - 41:10
-
41:10 - 41:16
-
41:16 - 41:21
-
41:21 - 41:28
-
41:28 - 41:34
-
41:34 - 41:38
-
41:39 - 41:44
-
41:44 - 41:49
-
41:49 - 41:54
-
41:54 - 42:01
-
42:01 - 42:06
-
42:06 - 42:11
-
42:11 - 42:17
-
42:17 - 42:24
-
42:24 - 42:32
-
42:32 - 42:35
-
42:35 - 42:40
-
42:40 - 42:44
-
42:44 - 42:49
-
42:49 - 42:54
-
42:54 - 42:56
-
42:56 - 43:00
-
43:00 - 43:05
-
43:05 - 43:10
-
43:10 - 43:16
-
43:16 - 43:21
-
43:21 - 43:28
-
43:28 - 43:32
-
43:32 - 43:37
-
43:37 - 43:41
-
43:41 - 43:44
-
43:44 - 43:48
-
43:48 - 43:52
-
43:52 - 43:55
-
43:55 - 44:00
-
44:00 - 44:06
-
44:06 - 44:11
-
44:11 - 44:16
-
44:16 - 44:19
-
44:19 - 44:23
-
44:23 - 44:26
-
44:26 - 44:31
-
44:31 - 44:35
-
44:35 - 44:41
-
44:41 - 44:45
-
44:45 - 44:49
-
44:49 - 44:53
-
44:53 - 44:58
-
44:58 - 45:03
-
45:03 - 45:08
-
45:08 - 45:12
-
45:12 - 45:15
-
45:15 - 45:19
-
45:19 - 45:21
-
45:21 - 45:26
-
45:26 - 45:31
-
45:31 - 45:35
-
45:35 - 45:39
-
45:39 - 45:46
-
45:46 - 45:52
-
45:52 - 45:55
-
45:55 - 45:59
-
45:59 - 46:04
-
46:04 - 46:10
-
46:10 - 46:14
-
46:14 - 46:17
-
46:17 - 46:22
-
46:22 - 46:25
-
46:25 - 46:31
125 3 edited Korean subtitles for The Unity Tutorial For Complete Beginners | ||
125 3 edited Korean subtitles for The Unity Tutorial For Complete Beginners | ||
125 3 edited Korean subtitles for The Unity Tutorial For Complete Beginners | ||
Unaced edited Korean subtitles for The Unity Tutorial For Complete Beginners | ||
Unaced edited Korean subtitles for The Unity Tutorial For Complete Beginners | ||
Unaced edited Korean subtitles for The Unity Tutorial For Complete Beginners | ||
Unaced edited Korean subtitles for The Unity Tutorial For Complete Beginners | ||
Unaced edited Korean subtitles for The Unity Tutorial For Complete Beginners |