본문 바로가기
취미/게임 개발

Unity 2D 로그라이크 게임만들기(적과 바닥) #2

by krapoi 2021. 8. 27.
반응형

지난번에 말했듯이 적과 바닥을 만들 것이다.

 

우선 스프라이트를 꺼내 주자.

바닥이 될 스프라이트와 적이 된 스프라이트를 꺼내야 한다.

바닥 스프라이트 Square하나와 적 스프라이트 Circle을 만들었다.

이렇게 만들었다면,

위치를 잡아주자.

 

이제

Tag처리를 해주도록 하자.

Tag는 Inspector에서 찾을 수 있다.

Add Tag를 누르면 된다.

Tag는 2개를 만들건대, 각각 Enemy와 Ground로 만들었다.

플레이어 태그는 그냥 있기때문에 만들필요가 없다.

이제 게임을 실행해 본다면 플레이어가 바닥을 뚫고 떨어질 것이다.

이걸 방지하기 위해 Ground와 Player에 Collider2D를 넣어주자.

난 플레이어와 Ground가 네모이기 때문에 Boxcollider를 썻다.(도형에 맞는거 쓰면됨, 스프라이트가 그림인 경우가 디자인된 상태인 상황일경우 나는 편하게 boxcollider를 쓴다. 물론 상황에 따라 다르게 해야한다.)

이렇게 만들고 나면 땅을 통과하지 않을 것이다.

이제 적을 만들어 주자.

적도 플레이어와 같이 Rigidbody와 Collider를 넣어주자.

이제 Enemy의 스크립트를 짤 시간이다.

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

public class Enemy : MonoBehaviour
{

	public static float HP;
    public static float speed;
    public static float AD;
   Rigidbody2D rigid;
   
    void Start()
    {

        HP = 100;
        rigid = GetComponent<Rigidbody2D>();
        speed = 3;
        AD = 10.0f;

    }
    
     void Update()
    {
    
    }
}

 

이제 Enemy에 스크립트를 넣어주자.

그리고 게임을 실행하면 Enemy도 안정적으로 바닥 위에 있다.

근데 여기서 플레이어를 움직여 Enemy에 부딪혀보면 이상한 점이 있다.

플레이어와 Enemy가 굴러간다.

이걸 해결해야 하는데 방법은 간단하다.

플레이어와 Enemy의 Inspector에 들어가

빨간 줄이 쳐 저 있는 Freeze Rotation에 Z를 체크하면 된다.(Enemy도 똑같은 방식으로 고정시킨다.)

그러면 고쳐진다.

 

다음에는 적 AI를 만들어 보겠다.

 

**(제가 만들고 있는 게임을 토대로 설명드리는 것입니다. 코딩이 제 스타일이라 참고만 하시는 걸 추천합니다.)**

반응형