본문 바로가기

내일배움캠프_TIL

10월 18일 TIL

맵에 스폰될 몬스터와 아이템을 관리할 스크립터블 오브젝트 생성

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