Presentation is loading. Please wait.

Presentation is loading. Please wait.

모 바 일 게 임 제 작 한국IT전문학교 박재성.

Similar presentations


Presentation on theme: "모 바 일 게 임 제 작 한국IT전문학교 박재성."— Presentation transcript:

1 한국IT전문학교 박재성

2 4 게임 제작의 기초(1)

3 4.1 유니티의 거리 단위(Unit) Unit은 가상의 거리 단위 유니티에서 유닛은 미터(m)로 설정한다.

4 4.2 컴포넌트와 속성 속성 : 오브젝트의 위치, 방향, 질량 등 개별적인 값. 컴포넌트 : 서로 관련된 속성을 묶어둔 것..

5 4.2 컴포넌트와 속성 Transform Position : 원점으로 부터 거리가 Unit으로 표시됨.
Rotation : 각 축에 대한 회전각을 60분법으로 표시. 시계방향이 양(+)의 방향 Scale : 각 축에 대한 확대/축소 비율 표시

6 4.2 컴포넌트와 속성 (2) Collider 충돌체. 오브젝트의 피부와 같은 개념.
콜라이더가 없으면 충돌을 일으킬 수 없어서 다른 물체가 뚫고 지나간다. 3ds Max등 외부 프로그램에서 만든 오브젝트는 콜라이더가 없음.

7 4.2 컴포넌트와 속성 (3) Rigidbody 물리적인 특성을 부여하는 컴포넌트.
충돌을 탐지하는 오브젝트에는 리지드바디가 있어야 한다. 벽과 공이 충돌할 때 충돌을 공에서 처리하려면 공에 리지드바디가 있어야 하고, 충돌을 벽에서 처리한다면 벽에 리지드바디가 있어야 한다.

8 4.3 유니티의 좌표계 World 좌표계 화면의 중심이 원점(0, 0, 0)이 됨.
카메라의 위치와 회전 상태에 따라 원점이 달라 진다. 카메라를 x축 기준으로 90도 회전시켜 카메라가 바닥을 보게 하면, y축과 z축이 바뀜.

9 4.3 유니티의 좌표계 (2) Screen 좌표계 화면의 왼쪽 아래가 원점(0, 0)이 됨.
마우스 클릭이나 터치는 스크린 좌표계를 이용한다. 카메라와 상관없이 항상 일정 하다.

10 4.3 유니티의 좌표계 (3) GUI 좌표계 화면의 왼쪽 위가 원점(0, 0)이 됨.

11 4.3 유니티의 좌표계 (4) Viewport 좌표계 화면의 왼쪽 아래가 (0, 0), 오른쪽 위가 (1,1)이 됨.
GUI Text와 매트리얼의 Offset을 설정하는 데 사용.

12 4.4 유니티의 Vector Vector2 : 평면의 위치, Vector2(x, y)
Vector3 : 공간의 위치, Vector3(x, y, z) Vector4 : 4개의 값, Vector4(r, g, b, a)

13 4.9 오브젝트의 낙하 Plane과 Sphere를 추가
Sphere에 Rigidbody추가. Component > Physics > Rigidbody

14 4.10 오브젝트의 반사 Project뷰에서 Create > Physic Material 추가. 이름을 Bouncy로 변경 Sphere에 Bouncy 적용.

15 4.11 사운드 연주 Project뷰에 사운드 파일을 추가 한다.
Sphere에 오디오 클립을 드래그 하여 Audio Source 를 추가한다.

16 4.12 충돌의 판정 Create > C# Script 선택. CsBall.cs 생성
1) 클래스명과 파일명은 같아야 함. 2) 영문 대소문자 구분 있음 3) 메서드 이름과 자료의 형은 첫 문자를 대문자로 한다. Start() : 게임이 시작될 때 한 번 실행됨. Update() : 게임의 매 프레임 마다 호출됨. 게임 Loop. Void OnCollisionEnter(Collision coll){ audio.play(); }

17 4.12 충돌의 판정 Sphere에 스크립트를 연결한다.

18 4.13 오브젝트 움직이기 CsMove.cs 생성 int speed=5; // 5 m/s. 속도= 거리/시간
Void Update(){ float amtMove=speed*Time.deltaTime; transform.Translate(Vector3.forword*amtMove); //transform.Translate(new Vector3(0,0,1)*amtMove); } - 스크립트를 Cube에 연결

19 4.14 월드 좌표와 로컬 좌표 월드좌표 적용 transform.Translate(Vector3.forward, Space.World); 로컬좌표 적용 transform.Translate(Vector3.forward, Space.Self); //기본값

20 4.15 Key로 이동 및 회전하기 좌우 이동 float amtMove=speed*Time.smoothDeltaTime;
float keyForward=Input.GetAxis(“Vertical”); //상,하 키 float keySide=Input.GetAxis(“Horizontal”); //좌,우 키 transform.Translate(Vector3.forward*amtMove*keyForward); transform.Translate(Vector3.right*amtMove*keySide); transform.Translate(new Vector3(keySide, 0, keyForward) * amtMove);

21 4.15 Key로 이동 및 회전하기 - 회전 Int rotSpeed=120;
float amtRot=rotSpeed*Time.smoothDeltaTime; float keyRot=Input.GetAxis(“Horizontal”); //좌,우 키 transform.Rotate(Vector3.up*amtRot*keyRot); // y축 기준으로 회전 * Time.smoothDeltaTime 은 첫 프레임부터 현재프레임까지의 평균 경과시간을 의미 한다. Time.deltaTime보다 오브젝트의 움직임이 더 부드럽다.

22 4.16 계층적인 오브젝트 탱크를 만든다. 탱크에 텍스처를 매핑한다. 포신을 포탑의 하위 개체로 설정한다.
빈오브젝트를 만들어서 본체와 포탑을 결합한다. 스크립트 CsTank.cs를 작성하여 탱크에 적용한다.

23 4.16 계층적인 오브젝트


Download ppt "모 바 일 게 임 제 작 한국IT전문학교 박재성."

Similar presentations


Ads by Google