Server/C#

도트게임 #5) Enemy

Juzdalua 2024. 4. 25. 14:56

적 만들기)

Player와 동일하게 설정한다.

1. 다운 받은 에셋을 자르고 

2. 서클 오브젝트를 만들어서 이미지 주입.

3. 콜라이더, 리지드바디 설정

 

적이 나를 따라오도록 스크립트 세팅)

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

public class EnemyController : MonoBehaviour
{
    public float speed = 2;
    GameObject target;
    // Start is called before the first frame update
    void Start()
    {
        target = GameObject.Find("Player"); // 실제 게임에서는 효율이 좋지 않다. 권장X

    }

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

    private void FixedUpdate(){
        /*
        벡터의 뺄셈: 플레이어 벡터 - 몬스터의 벡터 = 몬스터의 위치에서 플레이어를 향한 벡터
        */
        Vector2 direction = target.transform.position - transform.position; 
        transform.Translate(direction.normalized * speed * Time.fixedDeltaTime);

        //적이 바라보는 방향 설정
        if(direction.x < 0){
            GetComponent<SpriteRenderer>().flipX = true;
        } else if(direction.x > 0){
            GetComponent<SpriteRenderer>().flipX = false;
        }
    }
}

 

이제 플레이하면 적이 2의 속도로 플레이어를 쫓아온다.

 

적 애니메이션 추가)

대기모션(EnemyIdle), 달리는 모션(EnemyRun), 죽는모션(EnemyDie) 3가지를 설정한다.

기본적으로 애니메이션은 Loop Time을 갖고, 반복실행한다.

적이 죽는 모션은 1번만 실행되어야 하니 이를 해제해준다.

 

 

적은 항상 플레이어를 따라오기 때문에 Idle 상태는 존재하지 않지만 일단 만들어두었다.