반응형

아래 그림처럼 벽돌을 깨는 고전 게임을 만들어 보겠습니다 

옛날에 알카노이드 란 이름으로 나왔던 게임을 조금 흉내 내어 보겠습니다 

 

게임 화면을 576 : 1024 로 맞춥니다 

 

 

 

하이라키뷰에 있는 메인 카메라를 선택하고  Projection -> orthographic 으로 설정합니다

 

Assets에  materials폴더를 만들고 Create -> Physic Material을 선택하여 생성합니다 

 

 

 

Physic Material 의 속성을 아래 그림과 같이 바꿉니다

 

하면에 4개의 큐브를 만들 과 화면 태 투리에 큐브가 보일 정도로 위치를 합니다 

 

게임 화면에서 보일 때 밑에 있는 큐브는 약간 안 보이게 합니다 

 

 

 

네 개의 큐브를 선택하고  Box Collider -> Material에 있는 부분을 new Physic Material을 드래그하여 올려놓습니다

 

 

그리고 하이 라키 뷰에 빈 오브젝트를 만들고 이름을 block이라고 하고 자식으로 3D Object ->Cube를 32 개를 생성하여 아래 그림과 같이 4개의 큐브 안에 들어오게 하여 정렬을 시킵니다 

 

32개의 큐브를 선택하고  Box Collider -> Material에 있는 부분을 new Physic Material을 드래그하여 올려놓습니다

 

 

 

block 오브젝트를 선택하여 Prefabs 폴더를 만들어 거기에 드래그하여 프리 팹을 만듭니다

하이 라키 뷰에 3D Object ->Cube를 생성하고 이름을 Paddle로 하고 Transform을 아래 그림과 같이 하고  Box Collider -> Material에 있는 부분을 new Physic Material을 드래그하여 올려놓습니다

 

하이 라키 뷰에3D Object ->Sphere를 생성하고  Transform을 아래 그림과 같이 하고  Box Collider -> Material에 있는 부분을 new Physic Material을 드래그하여 올려놓습니다

 

Sphere를 Paddle의 자식으로 놓습니다

 

 

 

Paddle을 움직일 PaddleCtrl 스크립트를 생성하여 스크립트를 작성합니다

 

PaddleCtrl 스크립트 작성

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

public class PaddleCtrl : MonoBehaviour
{
    public float PaddleSpeed = 1f;//Paddle의 이동 스피드
    private Vector3 playerPos = new Vector3(0f, -3.5f, 0f);//Paddle의 초기 위치

    private void Update()
    {
        //Paddle 좌우 이동
        float xPos = transform.position.x + (Input.GetAxis("Horizontal") * PaddleSpeed);

        // Paddle 에이동 제한을 준다 
        playerPos = new Vector3(Mathf.Clamp(xPos, -2f, 2f), -3.5f, 0f);
        transform.position = playerPos;
    }
}

 

 

 

 

Materials 폴더를 선택하고 Create -> Material  두 개 만듭니다 

 

 

 

green 메터리얼은 Paddle에 붙이고 red는 Sphere에 붙힘니다 

 

작성한 PaddleCtrl을 Paddle 오브젝트에 붙히고 Paddle 오브젝트를 프리 팹으로 만듭니다

 

 

 

 

 

게임을 실행하면 Paddle  좌우 키를 움직일 때 방향대로 Paddle 이 움직이는 것을 볼 수 있습니다

 

반응형

+ Recent posts