작성
·
163
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 인턴입니다.
질문해주신 “prop prefabs에 사이즈가 안 나오는 문제”는 주로 Unity의 Inspector 창에서 배열이나 리스트 항목을 정의했으나, 아직 해당 배열이나 리스트에 아무런 요소도 추가되지 않았을 때 발생합니다. 코드를 보면 public GameObject[] propPrefabs;
로 propPrefabs
라는 GameObject 타입의 배열을 선언하였으나, Unity 에디터에서 이 배열에 실제로 아이템을 할당하지 않았기 때문에 사이즈가 나타나지 않는 것입니다.
Unity 에디터에서 해결하려면, 다음 단계를 따라하시면 됩니다:
이 과정을 통해 “Prop Prefabs” 필드에 할당된 prefab의 갯수 만큼 사이즈가 조정되며, 이제 스크립트에서 이 배열을 정상적으로 사용할 수 있습니다.
추가적으로, 스크립트에서 동적으로 배열의 크기를 조정하고 싶으시다면 코드 내에서 직접 생성하고 할당하는 방법도 있습니다. 하지만 Unity의 Inspector를 통해 할당하는 것이 더 직관적이고 간단하므로, 가능하다면 에디터를 활용하는 방법을 권장합니다.
사이즈라는 필드가 아예없는데요..ㅠㅠ