강의

멘토링

커뮤니티

Cộng đồng Hỏi & Đáp của Inflearn

Hình ảnh hồ sơ của dndyd49247591
dndyd49247591

câu hỏi đã được viết

Tinh chất lập trình trò chơi Unity C# trong Retro

Bộ tạo đối tượng ngẫu nhiên

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

Viết

·

236

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()
    {
        
    }
}
C#unity

Câu trả lời 1

0

안녕하세요, 인프런 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를 통해 할당하는 것이 더 직관적이고 간단하므로, 가능하다면 에디터를 활용하는 방법을 권장합니다.

dndyd49247591님의 프로필 이미지
dndyd49247591
Người đặt câu hỏi

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

Hình ảnh hồ sơ của dndyd49247591
dndyd49247591

câu hỏi đã được viết

Đặt câu hỏi