티스토리 뷰

 

 

1. 프로젝트 생성하기 템플릿은 2D로 선택하고 프로젝트 이름을 넣고 생성한다. 

 

2. Assets 폴더안에 게임에 사용될 이미지를 넣는다. 

 

2-1. 게임에 사용될 이미지 다운로드

fbird.png
0.04MB

3. Assets 창에서 이미지를 선택한다. 

 

4. 이미지의 Inspector창에서 Sprite Mode에서 Single을 Multiple로 변경하고 Sprite Editor를 클릭한다.

 

5. Apply를 클릭한다. 

 

6. Sprite Editor에서 Slice를 선택하고 Slice를 클릭해서 이미지를 나눈다. 그리고 꼭 Apply를 클릭해서 적용한다. 

 

7. 이미지가 잘 슬라이스 되었는지 확인한다. 화살표를 누르면 이미지가 슬라이스된게 나온다. 

 

8-1. 게임의 가로화면을 세로화면으로 바꿔준다. Game 탭에서 9:16 Aspect로 설정한다. 

 

8-2 게임화면이 세로로 바뀌었다. 

 

9-1. 배경 이미지를 Scene에 드래그앤드롭 한다. 

 

9-2. 배경화면 안에 카메라가 있다. 카메라 크기와 배경화면 크기를 맞춰야 한다. 

 

9-3-1. 배경화면의 이름을 알기쉽게 바꿔준다. Rename 

 

9-3-2 배경화면 이미지 이름을 Background로 변경한다. 

 

9-3-3 배경화면 Backgroud이미지의 Position X, Y를 0으로 세팅한다. 

 

9-4. 하이라키(Hierarchy)에서 Main Camera를 선택하고 메인카메라 흰줄을 드래그해서 배경화면에 맞춘다. 

 

9-5 메인카메라 흰줄을 배경화면에 딱 맞춘다.

 

10. 새 이미지도 배경화면에 추가시켜 줍니다. (아참!! 틈틈히 저장하세요!! Ctrl+S)

 

11. 새 이미지의 이름도 알아보기 쉽게 Bird로 바꿔줍니다.

 

12. 애니메이션 창을 띄웁니다. Window -> Animation -> Animation

 

13. Animation 창에서 Create를 클릭한다. 

 

14. 파일 이름을 FlyBird.anim으로 변경하고 저장해준다. 

 

15. Animation에 타임라인이 생겼다. 

 

16-1. 새의 이미지 세개를 모두 선택하고 Animation 타임라인에 드래그앤드롭한다. 

 

16-2. 타임라인에 키 프레임 3개가 생겼다. 각 키 프레임3개는 각 3개의 이미지이다. 

 

16-3. 삼각형 표시를 누르면 Bird이미지를 확인할 수 있고, 타임 라인에서 마우스 휠을 올리면 타임라인이 확대된다.

 

16-4. 플레이버튼을 클릭하면 실제로 새가 움직이는 이미지를 볼 수 있다.

 

17-1. 이미지가 너무 빨리 움직이니, 이미지를 모두 선택하고 타임라인 오른쪽으로 드래그하면 시간이 늘어난다. 

 

17-2. 날개의 부드러운 움직임을 위해서 다음과 같이 설정한다. 

기존 날개 [아래->중간->위에] 에서 [아래 -> 중간 -> 위에 -> 중간 -> 아래]로 변화를 준다. 

중간 날개 이미지를 복사해서 [ctrl+c, v] 4번째 타임라인 이미지 자리로 

아랫 날개 이미지를 복사해서 [ctlr_c,v] 5번째 타임라인 이미지 자리로

타임라인은 간격 잘 맞춰서 만든다. 

 

18-1. 게임탭에서 플레이 버튼을 누른다. 새가 나오질 않는다. 다시플레이버튼을 클릭해서 멈춘다.

 

18-2. Background 이미지에서 Order in Layer가 0이다. 

 

18-3. Bird 이미지에서 Order in Layer도 0이였는데 1로 바꿔준다. 

 

18-4. 다시 게임탭에서 플레이 해본다. Bird 이미지가 잘 움직이는 것을 확인한다.

 

19-1. 그라운드 이미지를 추가한다. 

 

19-2. Hierarchy 창에서 그라운드 이미지 이름을 Ground로 Rename해준다. 

 

19-3. Ground Inspector 창에서 Order in Layer를 0에서 1로 변경한다. 

 

19-4. Ground Inspector창에서 DrawMode를 Tiled로 변경한다. 

 

19-5. Ground 이미지를 늘려준다. 

 

19-6. Ground 이미지를 선택하고 애니메이션창에서 Create 클릭한다. 

 

19-7. 파일 이름을 PlayGround.anim로 변경하고 저장한다. 

 

20. Animation창에서 녹화버튼을 클릭한다. 

 

21. 그라운드를 살짝 움직이면 애니메이션 타임라인에 키프레임이 생성된다. 

 

22. 그라운드 애니메이션이 종료될 지점에 클릭하면 흰줄이 생긴다. 

 

23. 그라운드를 살짝 움직이면서 Shift키를 누르면서 마우스로 드래그한다. 종료되는 시점에도 키프레임이 생긴다. 

 

24. 플레이 버튼을 눌러본다. 그라운드의 움직임이 어색하다. 

 

25. 마우스로 드래그해서 키프레임을 모두 선택한다. 

 

26. 그라운드 이미지의 부드러움을 위해 우클릭 Both Tangents --> Linear를 선택한다. 

 

27. 그래도 그라운드 이미지가 시작과 종료가 아귀가 안맞아서 부자연스럽다면 애니메이션 첫번째 이미지 Position.x 값을 이미지 움직임이 부드러워질때까지 조정해본다. 

 

28-1. Bird를 선택한다. 

 

28-2. Bird의 위치를 중앙으로 조정한다. Position X: 0, Y:0

 

29. Bird의 Inspector에서 Add Component를 클릭한다. 

 

30. Rigidbody2D를 선택한다. (중력이 적용된다.)

 

31. Capsule Collider 2D도 추가한다. 

 

32-1. Capsule Collider 2D에서 Direction을 Horizontal로 변경한다.

 

32-2. 녹색선이 Capsule Collider2D 경계이다.

 

33-1. Ground에서 BoxCollider 2D를 추가한다. 

 

33-2. Ground에 녹색선이 생겼지만 Ground를 모두 경계하지 못한다. 

 

33-3. Box Collider 2D의 Auto Tiling을 체크하면 Ground 모든 영역을 경계한다. 

 

34-1. Bird를 선택하고 Add Component를 클릭하고 검색란에 JumpBird를 입력하고 New scripit를 클릭 클릭 해서 스크립트를 추가한다.

 

34-2. JumpBird C# 스크립트를 더블 클릭한다.  

 

35-1. Rigidbody2D를 이용하여 점프하기

Bird를 클릭할때마다 점프하는 코드 ( 코드를 입력하고 꼭 저장하고 실행하여 한다.)

 

jumpPower변수를 public으로 선언했기 때문에 Bird의 Inspector창에서도 Jump Power 값을 조정할 수 있다. 

 

35-2. 클릭할때마다 Bird가 점프한다.

 

36. 장애물 만들기, 장애물을 Scene 화면으로 드래그한다. 

 

37-1. 장애물을 Ctrl+C,V 붙여넣기 한다.

 

37-2. 복사해준 장애물을 선택하고 Move 버튼을 누르고, 녹색 화살표를 누르고 그대로 위로 올린다. 

 

37-3. 장애물 뒤집기: Rotation의 Z에 180을 입력한다.

 

37-4. 장애물이 뒤집혔다.

 

37-5. 장애물 크기 늘리기

 

38-1. 장애물 한개의 오브젝트로 만들기

하이어라키창에서 빈공간에 우클릭하여 Create Empty를 클릭한다. 

 

38-2. Create Empty의 이름을 Obstacle로 변경한다.

 

38-3. Obstacle의 위치를 장애물의 중간정도에 위치시킨다. 

 

 

38-4. 하이어라키에서 장애물들을 Obstacle안에 넣는다. 

 

38-5. 장애물들의 Order in Layer도 1로 설정한다.

 

39-1. Obstacle에서 Add Component에서 New script를 클릭한다. 

 

39-2. MoveObstacle 를 추가한다. 

 

39-3. 장애물을 왼쪽으로 이동하는 코드를 넣는다. 

 

40-1. 장애물에 Polygon Collider 2D 추가 한다.

 

40-2. Polygon Collider 2D에서 Edit Collider 를 클릭한다. 

 

40-3. 장애물 모양에 맞게 녹색선을 당겨서 경계선을 맞춘다. 

 

41. 장애물 프리팹(Prefab) 만들기, 하이라키에 있는 Obstacle를 Project창 Assets폴더로 드래그하면 프리팹이 된다.

 

42. 하이라키에 있는 Obstacle은 삭제한다. 

 

43. 프래팹 제너레이터 만들기: 하이라키에서 우클릭하여 Create Empty

 

44. 프리팹 제너레이터 이름은 ObstacleGenerator

 

45.  ObstacleGenerator의 스크립트를 생성한다. MakeObstacle.cs

 

46.

 

47. 

 

48. Assets폴더안에 있는 Obstacle 프리팹을 드래그해서 적용한다. 

 

49. 장애물 Y위치 랜덤하게 나오게 하기 

50. 장애물 Y위치 랜덤하게 나오게 하기 

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class MakeObstacle : MonoBehaviour
{
    
    public GameObject obstacle;
    public float time_Diff = 1.5f;
    float time = 0;

    void Start()
    {
          
    }

    
    void Update()
    {
        time+= Time.deltaTime;
        if (time > time_Diff)
        {
            GameObject new_obstacle = Instantiate(obstacle); //장애물을 계속 생성한다. 
            new_obstacle.transform.position = new Vector3(5.5f, Random.Range(-1.61f, 3.7f), 0);
            //Vector3(X좌표 시작위치, Random.Range(Y좌표최소값, Y좌표최대값), Z좌표값);
            time = 0;
        }
        
    }
}

 

51. 장애물 위 아래로 움직이게 하기 

 

float UpDownobstacleSpeed = 2.0f;
    int count = 0;
    bool updown = true;
    void Start()
    {
       
    }

    // Update is called once per frame
    void Update()
    {
       // transform.position += Vector3.left * obstacleSpeed * Time.deltaTime; // 왼쪽으로 이동 
    
        if(updown==true)
        {
            transform.position += Vector3.down * UpDownobstacleSpeed * Time.deltaTime;
            if (count < 100)
                count++;
            else
            {
                count = 0;
                updown = false;
            }
                
        }
        else if(updown ==false)
        {
            transform.position += Vector3.up * UpDownobstacleSpeed * Time.deltaTime;
            if (count < 100)
                count++;
            else
            {
                count = 0;
                updown = true;
            }
        }
        
    }

 

52. 5초뒤에 장애물 삭제하기 

 

댓글
최근에 달린 댓글
글 보관함
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Total
Today
Yesterday
    뽀로로친구에디
    최근에 올라온 글