아빠는 개발자

[unity] Enemy 만들기 본문

GAME

[unity] Enemy 만들기

father6019 2024. 2. 25. 13:36
728x90
반응형

적으로 쓸 이미지를 이 매미같은 친구들로 정했다. 

외계인이라고 하는..

 

 

우선

 

Sprites 폴더에 매미를 넣는다. 

그리곤 우측 Splite Randerer 에서 Rraw mode 를 multi 로 바꿔준다. 

 

무기나 케릭터 잘랐던것 처럼  splite 주고 auto 로 옵션을 주고 짤랐다. 

 

와.. 저장 안하고 닫았..

 

 

 

 

 

component 에 충돌영역과 중력을 붙이고  tag 도 신규 Enemy tag 생성해서 붙여준다. 

그리고 prefabs 에 넣어서 재사용 할수 있게 한다. 

 

prefabs 에 들어있는객체들을 복사하고 이름을 변경해준다. 

 

이미지를 끌어다가 변경을 하고 

 

 

Enemy Script 

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

public class Enemy : MonoBehaviour
{

    [SerializeField]

    private float moveSpeed = 5f;
    // Update is called once per frame

    private float minY = -7f;

    void Update()
    {
        transform.position += Vector3.down * moveSpeed * Time.deltaTime;
        if(transform.position.y < minY) {
            Destroy(gameObject);
        }
    }
}

 

Empty Object 생성해서 

 

화면 상단에  시작위치 잡아주고 EnemySpawner 로 이름변경

스크립트도 EnemySpawner 로 이름을 변경해준다. 

 

EnemySpawner Script

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

public class EnemySpawner : MonoBehaviour
{
 
    [SerializeField]
    private GameObject[] enemies;
    private float[] arrayPosX = {-2f, 0f , 2f};

    [SerializeField]
    private float spawnInterval = 1.5f;

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

    void StartEnemyRoutine(){
        StartCoroutine("EnemyRoutine");
    }

    IEnumerator EnemyRoutine(){
        yield return new WaitForSeconds(3f);

        while(true){
            int index = Random.Range(0, enemies.Length);
            foreach( float posX in arrayPosX){
                SpawnEnemy(posX, index);
            }
            yield return new WaitForSeconds(spawnInterval);
        }
    }



    void SpawnEnemy(float posX, int index){
        
        Vector3 spawnPos = new Vector3(posX, transform.position.y, transform.position.z);
        Instantiate(enemies[index], spawnPos, Quaternion.identity);

    }
 
}

 

하면 Enemies 가 생기는데 prefabs 를 드래그해서 넣어준다. 

 

 

 

728x90
반응형

'GAME' 카테고리의 다른 글

[unity] 공격무기 (weapon) 만들기  (1) 2024.02.25
[unity] dragon (player)  (0) 2024.02.18
[unity] background  (0) 2024.02.18