[TIL_17_2] 유니티 기능과 개념 설명, 냅다 핑퐁 게임 만들기

H·2024년 1월 19일
0

1. 유니티 개념 설명

  • 유니티 의 주요 기능과 사용법 설명
    • 유니티 는 게임 개발을 위한 통합 개발 환경입니다.
    • 주요 기능:
      • 프로젝트 관리: 새로운 프로젝트 생성, 프로젝트 파일 구성 및 관리
      • 씬(Scene) 관리: 게임의 각 장면과 화면을 구성하는 요소
      • 에셋(Asset) 관리: 게임에 필요한 리소스(이미지, 사운드, 모델 등)를 관리
      • 컴파일 및 빌드: 스크립트 코드를 컴파일하여 실행 가능한 게임으로 빌드
      • 디버깅: 코드 실행 중에 오류를 찾고 수정
      • 에디터 확장 기능: 유니티 에디터를 사용자의 요구에 맞게 확장할 수 있는 기능 제공
  • 에셋, 씬, 게임 오브젝트의 개념과 관계 설명
    • 에셋(Asset):
      • 게임에 필요한 모든 리소스(이미지, 사운드, 모델, 코드 등)를 의미
      • 프로젝트의 에셋 폴더에 저장되며, 유니티에서 사용 가능한 형식으로 가져와서 게임에 활용
    • 씬(Scene):
      • 게임의 각 장면 또는 화면을 의미
      • 유니티에서 게임은 하나 이상의 씬으로 구성되며, 각 씬은 게임의 특정 부분을 담당
      • 예를 들어, 메뉴 씬, 게임 플레이 씬, 엔딩 씬 등으로 구성
    • 게임 오브젝트(GameObject):
      • 씬에 배치되는 모든 요소를 의미
      • 게임 오브젝트는 에셋을 이용하여 씬에 생성되며, 게임의 동작과 상호작용을 담당
      • 예를 들어, 캐릭터, NPC, 아이템, 장애물 등이 게임 오브젝트
      • 게임 오브젝트는 계층 구조로 구성되어 부모-자식 관계를 가지며, 이를 통해 그룹화하고 조작

2. 냅다 핑퐁 만들기!

아래 검은색 화면이 플레이 화면
왼쪽이 플레이어1, 점수판 파란색
오른쪽이 플레이어 2 점수판 빨간색

화면에는 안나오지만 화면 밖으로 공이 안나가도록 카메라 밖에 테두리가 둘러져 있으며 Box Collider 2D로 충돌할 수 있는 벽을 만듦.

그리고 공에는 이 문법을 넣으면 되고!

(1) 시작, 랜덤위치 발사, 상대방 골라인 닿았을 시 리셋하는 코딩을 적어두고

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

public class Ball : MonoBehaviour
{
    public float speed;
    public Rigidbody2D rigidbody;
    void Start()
    {
        rigidbody = GetComponent<Rigidbody2D>();
        Launch();
    }

    private void Launch()
    {
        float x = Random.Range(0, 2) == 0 ? -1 : 1;
        float y = Random.Range(0, 2) == 0 ? -1 : 1;

        rigidbody.velocity = new Vector2(x* speed, y* speed);
    }

    public void Reset()
    {
        rigidbody.velocity = Vector2.zero;
        transform.position = Vector2.zero;
        Launch();
    }}

(2) 유니티에서 볼 세팅

  • Box collider 2D 설정
  • RigidBody 2D 를 설정
    • mass는 1는 1로 설정, Freeze Rotation Z는 체크해서 z로 움직이지 않게 하고
    • 바운스 세팅에서 bounciness를 1로 설정하면 부딪히는 각도와 동일하게 튕겨져 나옴
  • 볼 스피드는 5정도?

유니티 컴포넌트 이해

  • 유니티의 컴포넌트 방식
    • 게임 오브젝트에 부착되는 독립적인 기능 모듈
    • 각 컴포넌트는 특정한 작업을 수행하거나 기능을 제공하는 역할
    • 컴포넌트들을 게임 오브젝트에 추가하고 구성함으로써 게임의 동작과 특징을 결정
  • 기본 컴포넌트 예시
    1. Transform: 게임 오브젝트의 위치, 회전, 크기 등을 조정하는 데 사용됩니다.
    2. Rigidbody: 물리적인 효과를 게임 오브젝트에 적용할 수 있게 해줍니다.
    3. Collider: 충돌 감지를 처리하기 위해 사용되는 컴포넌트입니다.
    4. SpriteRenderer: 2D 그래픽을 표시하는 데 사용됩니다.
    5. AudioSource: 사운드를 재생하기 위해 사용되는 컴포넌트입니다.
    6. 사용자가 필요에 따라 컴포넌트를 직접 작성하고 추가할 수도 있습니다. 이를 통해 게임의 특정한 동작이나 기능을 개발자가 원하는 대로 커스터마이즈
profile
IT 서비스 구현 및 게임에 관심이 많습니다.

0개의 댓글