유니티 2D에서 적을 순차적으로 나타나게 하는 방법은 다음과 같습니다.
Enemy 오브젝트를 프리팹으로 만듭니다. 이 프리팹에는 Enemy 스크립트가 있어야 합니다.
Enemy 스크립트에서는 적의 번호를 저장할 변수를 만듭니다.
Enemy 스크립트에서 OnCollisionEnter2D 함수를 구현합니다. 이 함수는 적이 충돌할 때 호출됩니다.
OnCollisionEnter2D 함수에서는 적이 죽었을 때 다음 적을 활성화합니다.
아래의 코드는 유니티 2D에서 적을 물리치면 순차적으로 다른 적이 나타나게 하는 간단한 예시입니다. 코드는 C#으로 작성되었으며, 자세한 주석을 포함하고 있습니다.
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class EnemySpawner : MonoBehaviour
{
public GameObject enemyPrefab; // 생성할 적 프리팹
public int totalEnemies = 100; // 생성할 전체 적 수
public float spawnDelay = 1f; // 각 적 생성 간격 (초)
private int currentEnemy = 0; // 현재 생성된 적 수
void Start()
{
// 일정 간격으로 적 생성 함수 실행
InvokeRepeating("SpawnEnemy", 0f, spawnDelay);
}
void SpawnEnemy()
{
// 현재 생성된 적 수가 전체 적 수를 초과하면 함수 종료
if (currentEnemy >= totalEnemies)
{
return;
}
// 적 생성
GameObject enemy = Instantiate(enemyPrefab, transform.position, Quaternion.identity);
// 적 생성 후 생성된 적 수 증가
currentEnemy++;
// 생성된 적에게 적 번호 할당
enemy.GetComponent<EnemyController>().enemyNumber = currentEnemy;
}
}
public class EnemyController : MonoBehaviour
{
public int enemyNumber; // 적 번호
void OnCollisionEnter2D(Collision2D collision)
{
if (collision.gameObject.CompareTag("Player"))
{
// 적 제거
Destroy(gameObject);
// 다음 적 생성
GameObject.FindObjectOfType<EnemySpawner>().SpawnEnemy();
}
}
}
위의 코드는 "EnemySpawner"와 "EnemyController" 두 개의 스크립트를 사용합니다. "EnemySpawner" 스크립트는 일정 간격으로 적을 생성하고, "EnemyController" 스크립트는 적이 플레이어와 충돌했을 때 적을 제거하고 다음 적을 생성합니다.
먼저 "EnemySpawner" 스크립트에서는 생성할 적 프리팹, 생성할 전체 적 수, 각 적 생성 간격 등을 설정합니다. "Start" 함수에서는 "InvokeRepeating" 함수를 사용하여 일정 간격으로 "SpawnEnemy" 함수를 반복 실행합니다.
"SpawnEnemy" 함수에서는 현재 생성된 적 수가 전체 적 수를 초과하지 않도록 체크한 후, "Instantiate" 함수를 사용하여 적을 생성합니다. 이후 생성된 적 수를 증가시키고, 생성된 적에게 적 번호를 할당합니다.
"EnemyController" 스크립트에서는 적과 플레이어가 충돌했을 때 "Destroy" 함수를 사용하여 적을 제거하고, "GameObject.FindObjectOfType" 함수를 사용하여 "EnemySpawner" 스크립트를 찾은 후 "SpawnEnemy" 함수를 호출하여 다음 적을 생성합니다. 이때 "SpawnEnemy" 함수를 호출하는 것으로 인해 다음 적이 순차적으로 생성됩니다. 생성된 적에게 할당된 적 번호는 적이 제거될 때까지 유지됩니다.
위의 코드에서는 적이 플레이어와 충돌했을 때 다음 적을 생성하도록 구현했지만, 이를 다른 이벤트나 조건에 맞게 변경하여 사용할 수 있습니다. 예를 들어, 적이 시간이 지나거나 일정 거리를 이동했을 때 다음 적을 생성하도록 변경할 수 있습니다.
또한, 위의 코드에서는 생성된 적이 즉시 화면에 나타나지만, 이를 조정하여 적이 나타나는 위치, 애니메이션 등을 변경할 수 있습니다. 이를 위해서는 "Instantiate" 함수를 사용하여 적을 생성할 때 위치, 회전 등을 설정하면 됩니다.
'유니티' 카테고리의 다른 글
유니티2D 조이스틱 코드 (0) | 2023.03.23 |
---|---|
Unity Ads API를 사용하여 광고를 보고 닫으면 특정 포인트를 추가하는 코드 (0) | 2023.03.22 |
유니티2D 가위 바위 보 게임에서 승리할 때 다른 씬에 있는 오브젝트의 색상을 변경하는 코드 (0) | 2023.03.20 |
유니티2D 가위 바위 보 게임 코드 (0) | 2023.03.20 |
유니티2D 5가지 이미지 중에서 랜덤으로 하나를 선택하는 코드 (0) | 2023.03.20 |