맵에 스폰될 몬스터와 아이템을 관리할 스크립터블 오브젝트 생성
using UnityEngine;
[CreateAssetMenu(fileName = "RoomConfig", menuName = "ScriptableObjects/RoomConfig", order = 1)]
public class RoomConfig : ScriptableObject
{
[Range(0, 1f)] public float monsterSpawnRate; // 몬스터가 스폰될 확률 (0~1)
public GameObject[] itemPrefabs; // 이 방에서 생성될 수 있는 아이템 프리팹들
// TODO: 실제 게임에서 사용할 몬스터와 아이템 클래스로 교체해야 합니다.
public GameObject SpawnMonster()
{
if (Random.value < monsterSpawnRate)
{
// TODO: 실제 게임에서 사용할 몬스터 생성 로직으로 교체해야 합니다.
return new GameObject("Monster");
}
return null;
}
public GameObject SpawnItem()
{
if (itemPrefabs.Length > 0)
{
int index = Random.Range(0, itemPrefabs.Length);
// TODO: 실제 게임에서 사용할 아이템 생성 로직으로 교체해야 합니다.
return Instantiate(itemPrefabs[index]);
}
return null;
}
}
방 프리팹에 적용할 스크립트
using UnityEngine;
public class Room : MonoBehaviour
{
public RoomConfig config; // 이 방의 설정
private void Start()
{
if (config != null)
{
// 몬스터 스폰 로직
GameObject monster = config.SpawnMonster();
if (monster != null)
{
// TODO: 몬스터 위치 결정 및 활성화 로직
}
// 아이템 생성 로직
GameObject item = config.SpawnItem();
if (item != null)
{
// TODO: 아이템 위치 결정 및 활성화 로직
}
}
}
}
현재 몬스터와 아이템 관련 기능이 완성되어있지 않아 기본 틀만 구현
'내일배움캠프_TIL' 카테고리의 다른 글
10월 24일 TIL (0) | 2023.10.24 |
---|---|
10월 20일 TIL (0) | 2023.10.20 |
10월 17일 TIL (0) | 2023.10.17 |
10월 5일 TIL (1) | 2023.10.06 |
9월 27일 TIL (0) | 2023.09.28 |