본문 바로가기
Unity/코인먹기 게임

[유니티] 2D 코인 먹기 게임 만들기

by Skull Crusher 2021. 4. 24.
728x90

1. 화면 세로 조정

2. UI -> Canvas 추가 -> Render Mode(Screen Space-Camera) -> Render Camera에 Main Camera 드레그&드롭

3. Player 생성

2D Object ->Sprites

Assets에 Sprites 폴더 만들기 -> 폴더에 내가 좋아하는 캐릭터 추가!!

인스펙터에 Sprite Renderer에 Sprite에 추가한 캐릭터 드레그&드롭

Add Component에 Rigidbody 2D/Circle Collider 2D 추가

4. 움직임 스크립트 만들기

Scripts 폴더 생성 -> Create -> C# Script -> 스크립트 이름 (Movement)

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

public class Movement : MonoBehaviour
{
    // 현재 캐릭터의 Transform 컴포넌트 참조
    public Transform trans;

    public float speed;

    // Start is called before the first frame update
    void Start()
    {
        
    }

    // Update is called once per frame
    void Update()
    {
        // Input.GetAxisRaw를 이용해 좌우 방향키값을 전달 받음
        // 좌 : -1, 우 : 1, 누르지않음 : 0
        float h = Input.GetAxisRaw("Horizontal");

        // Input.GetAxisRaw를 이용해 상하 방향키값을 전달 받음
        // 하 : -1, 상 : 1, 누르지않음 : 0
        float v = Input.GetAxisRaw("Vertical");

        //Debug.Log("좌우 이동 값 : " + h + ", 상하 이동 값 : " + v);

        // 방향 벡터 생성
        // 오른쪽 -> 1, 0, 0
        // 왼쪽 -> -1, 0, 0
        // 위쪽 -> 0, 1, 0

        // 방향 객체 생성(구조체)
        Vector3 direction;
        direction.x = h;
        direction.y = v;
        direction.z = 0;

        // 이동 공식
        // Transform.Translate(방향 * 속도 * Time.deltaTime);
        trans.Translate(direction * speed * Time.deltaTime);

    }
}

5. Player 인스펙터에 스크립트 추가 -> Transform 드레그&드롭 

Speed 설정하기 -> 우선 4로 해보자!!

6. 코인 생성

2D Object ->Sprites -> Duplicate 5개 생성 (단축키 : alt+d)

인스펙터에서 Player 처럼 Circle Collider 2D 추가

7. 코인아이템 pickup 스크립트 만들기

Create -> C# Script -> 스크립트 이름 (CoinPickup)

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

//유니티 UI 사용
using UnityEngine.UI;


public class CoinPickup : MonoBehaviour
{
    // 아이템 카운트 표시용 텍스트 참조
    public Text coinCountText;

    // Start is called before the first frame update
    void Start()
    {

    }

    // Update is called once per frame
    void Update()
    {

    }

    // 충돌 이벤트 함수
    // collision 매개변수 : 현재 충돌된 게임오브젝트의 Collider 컴포넌트 참조
    private void OnCollisionEnter2D(Collision2D collision)
    {
        Debug.Log("현재 캐릭터가 무언가랑 충돌함");

        // coinCountText의 text(string) 값을 정수로 변환함
        // string -> int : int.Parse("문자열");
        int count = int.Parse(coinCountText.text);

        // 카운트값 1 증가
        // count = count + 1;
        // count += 1;
        // count++;

        // 아이템 획득 카운트를 1 증가
        count++;

        // int -> string : 정수형변수.ToString();
        coinCountText.text = count.ToString();

        // 게임오브젝트 파괴
        // Destroy(게임오브젝트참조)

        // 아이템 파괴
        Destroy(collision.gameObject);

    }
}

8. 점수판 추가

만들어둔 Canvas를 클릭하고 마우스 오른쪽 버튼 -> UI -> Text -> 이름은 CoinCount

왼쪽 상단에 놓고 -> Text에 0 -> Font Style (Bold) -> Font Size (50) -> Alignment 가운데 정렬 -> Horizontal/Vertical Overflow (Overflow) -> Color (흰색)

9. Player에 Coin Pickup스크립트 Coin Count Text에 드레그&드롭

10. 코인을 먹을 때마다 점수가 올라감!!

 

댓글