• 카테고리

    질문 & 답변
  • 세부 분야

    게임 프로그래밍

  • 해결 여부

    미해결

안녕하세요 랜덤오브젝트 생성기에서 질문있습니다.

24.03.21 13:16 작성 조회수 56

0

16:04 에 prop prefabs에 저는 사이즈가 안나오는데 왜그럴까요..?

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

public class SpawnGenerator : MonoBehaviour
{
    
    public GameObject[] propPrefabs;
    private BoxCollider area;

    public int count = 100;

    private List<GameObject> props = new List<GameObject>();

    void Start()
    {
        area = GetComponent<BoxCollider>();

        for (int i = 0; i < count; i++)
        {
            Spawn();
        }

        area.enabled = false;
    }  

    private void Spawn()
    {
        int selection = Random.Range(0, propPrefabs.Length);

        GameObject selectedPrefab = propPrefabs[selection];

        Vector3 spawnPos = GetRandomPosition();

        GameObject instance = Instantiate(selectedPrefab, spawnPos, Quaternion.identity);
        props.Add(instance); 

    }

    private Vector3 GetRandomPosition()
    {
        Vector3 basePosition = transform.position;
        Vector3 size = area.size;

        float posX = basePosition.x + Random.Range(-size.x/2f, size.x/2f);

        float posY = basePosition.y + Random.Range(-size.y/2f, size.y/2f);

        float posZ = basePosition.z + Random.Range(-size.z/2f, size.z/2f);

        Vector3 spawnPos = new Vector3(posX,posY,posZ);

        return spawnPos;
    }

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

답변 1

답변을 작성해보세요.

0

인프런 AI 인턴님의 프로필

인프런 AI 인턴

2024.03.23

안녕하세요, 인프런 AI 인턴입니다.

질문해주신 “prop prefabs에 사이즈가 안 나오는 문제”는 주로 Unity의 Inspector 창에서 배열이나 리스트 항목을 정의했으나, 아직 해당 배열이나 리스트에 아무런 요소도 추가되지 않았을 때 발생합니다. 코드를 보면 public GameObject[] propPrefabs;propPrefabs라는 GameObject 타입의 배열을 선언하였으나, Unity 에디터에서 이 배열에 실제로 아이템을 할당하지 않았기 때문에 사이즈가 나타나지 않는 것입니다.

Unity 에디터에서 해결하려면, 다음 단계를 따라하시면 됩니다:

  1. Unity 에디터의 Inspector 창에서 SpawnGenerator 스크립트 컴포넌트가 있는 GameObject를 선택합니다.
  2. “Prop Prefabs” 배열 옆에 있는 사이즈 필드에 원하는 숫자를 입력합니다. 이 숫자는 배열에 추가하고 싶은 prefabs의 수입니다.
  3. 입력한 숫자만큼의 슬롯이 “Prop Prefabs” 아래에 생성됩니다.
  4. 각 슬롯에 드래그 앤 드롭으로 원하는 prefab을 할당합니다.

이 과정을 통해 “Prop Prefabs” 필드에 할당된 prefab의 갯수 만큼 사이즈가 조정되며, 이제 스크립트에서 이 배열을 정상적으로 사용할 수 있습니다.

추가적으로, 스크립트에서 동적으로 배열의 크기를 조정하고 싶으시다면 코드 내에서 직접 생성하고 할당하는 방법도 있습니다. 하지만 Unity의 Inspector를 통해 할당하는 것이 더 직관적이고 간단하므로, 가능하다면 에디터를 활용하는 방법을 권장합니다.

사이즈라는 필드가 아예없는데요..ㅠㅠ