jae_coding

(유니티 2D게임 만들기) 유니티 플래피버드 클론 게임 (이미지 등록 및 속성 변경) 본문

C#/Unity

(유니티 2D게임 만들기) 유니티 플래피버드 클론 게임 (이미지 등록 및 속성 변경)

재코딩 2022. 7. 8. 22:27
반응형

Unity 설치

unity 설치 사이트

 

Unity

Unity is the ultimate game development platform. Use Unity to build high-quality 3D and 2D games, deploy them across mobile, desktop, VR/AR, consoles or the Web, and connect with loyal and enthusiastic players and customers.

unity.com

강의 자료

 

조코딩 Flappy Bird

조코딩 유니티 플래피버드 만들기 강의 자료입니다

animalface.site

 

1. 게임 요소에 필요한 이미지를 프로젝트 내의 Asset에 추가한다.

(이미지는 한 이미지에 여러 게임적 요소들이 존재하는 경우가 대부분)

- Sprite mode를 single에서 multiple로 변경한 후, Sprite editor 클릭 > Apply

Slice 클릭 > 게임 요소들이 하나씩 나누어 지는 것을 확인할 수 있다.

slice 하는 방법
Slice 된 이미지 파일

2. Scene 내부에 object를 추가 후 설정한다.

원하는 이미지를 drag and drop을 이용해서 scene안에 설정 > Inspector를 이용하여 x, y 좌표를 0, 0 (가운데 정렬)으로 설정

scene에서 본인의 화면에 맞게 조정한다.

(game > free aspect > +버튼 > type: Aspect Ratio (9: 16)으로 설정)

그 다음, 다른 이미지도 scene에 추가한다.

 

3.  Bird Animation 추가하기

Window > Animation > Create

Animation에 들어갈 요소들을 drag & drop 후 space를 누르면 오른쪽 animation에 다이아몬드 3개가 이미지 3개가 연속적으로 gif처럼 움직이는 것을 확인할 수 있다.

화면 기록 2022-07-08 오후 9.42.07.mov
0.28MB

이런식으로 에니메이션 적용이 완료된 것을 확인할 수 있다.

 

3.  Land Animation 추가하기

land image를 추가하고 draw mode를 변경 (simple -> tiled)

이유: 땅의 패턴은 동일화하면서 이미지의 길이를 늘리기 위해서

 

땅을 움직이게 하게 보이기 위해서 Animation을 조금 움직어 땅의 position을 저장하고 원하는 시간에 가서 클릭후 땅을 drag하여 움직여준 후 녹화버튼을 클릭하면 저장된다.

이후 Aliasing을 맞춰주기 위해서 마우스 우클릭 Both tangents > Linear로 변경한다.

4.  Bird에 중력을 적용시키기.

1) Scene > Bird > Inspector에서 add component click

2) Physics 2D > Rigidbody 2D를 적용시키면 2d 이미지 bird에 중력이 적용된다.

중력을 적용시킨 후 Collider를 이용하여 (capsule collider, box collider 2D) land와 Bird에 collider를 적용시켜준다.

참고로 collider는 초록색 선으로 경계선이 그려진 것을 확인할 수 있다.

화면 기록 2022-07-08 오후 10.14.50.mov
1.08MB

 Collider를 이용하여 중력으로 인하여 scene 밖에 나가는 것을 방지하기 위함이다.

 

VS code를 설치 및 적용을 한 후에 Bird Jump등 다양한 function을 구현해보아야겠다.

 

5.  Bird Jump 구현 시키기

object bird 클릭 > Inspector > add component > new script > VScode를 이용해서 스크립트 완성

 

BirdJump.cs

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

public class BirdJump : MonoBehaviour
{
    // Start is called before the first frame update
    
    
    Rigidbody2D rb;
    public float JumpPower;

    void Start()
    {
        // load rigidbody2D
        rb = GetComponent<Rigidbody2D>();

    }

    // Update is called once per frame
    void Update()
    {
        if (Input.GetMouseButtonDown(0))
        {
            rb.velocity = Vector2.up * JumpPower; //point 0, 1 -> 0, JumpPower
        }
    }
}

위 코드를 작성할 때 언어는 C#을 이용하였고 Rigid2D의 velocity의 변수를 이용하여 Bird를 점프하게 만드는 것이다.

이때 변수를 public으로 구성한 이유는 VScode에서만 코딩으로 변수를 설정하는 것이아닌 Unity를 이용하여 설정할 수 있도록 함이다.

다음에는 더욱 발전된 게임을 한번 만들어보아야겠다. 게임만들기 재밌다 ㅎㅎ

반응형
Comments