inflearn logo
강의

Course

Instructor

Retro Unity C# Game Programming Essence

Random Object Generator

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

244

dndyd49247591

5 asked

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

Answer 1

0

communityai8509

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

0

dndyd49247591

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

코루틴 관련 질문 있습니다.

0

66

1

강의 업데이트 질문

0

89

1

궁금한 부분이 있어서 질문 남깁니다.

0

162

1

FreeLook 카메라 Zone 설정관련

0

115

1

와..정말 감탄이 나오네요..

0

146

1

추상 클래스에 대해 이해가 잘 안되었는데

0

118

1

IsTargetOnSight가 자꾸 false로 나와요.

0

105

2

레이캐스트 에셋 임포트하는방법을 모르겠어요.

0

87

1

레이케스트 에셋을 다운받았는데 임포트 방법을 모르겠습니다.

1

141

2

혹시 어드레서블 강좌 추가계획이 있으실까요?

0

126

1

시네머신 FreeLook 관련

0

223

1

텍스트 드래그 앤 드롭

0

378

2

유니티 에디터 버전

0

375

1

text가 아닌 TextMeshPro를 사용해도 괜찮나요?

0

1733

2

상속 관련 질문입니다.

0

350

1

TPS 캐릭터 문제점 있습니다.

0

437

1

총을 쏴서 적을 맞췄을 때 저를 추적하는 코드는 어디 나와있나요??

0

278

0

github

0

305

0

wave 를 0으로 초기화해주는 부분이없는데 왜 0부터 시작하나요?

0

315

0

TPS게임 제작 Aim애니메이션 관련 질문 드립니다.

1

369

1

점프관련해서 UI버튼클릭을 통한 전달값에 대한 질문입니다.

0

305

1

인터페이스

1

238

0

혹시 본 강의에서 Dictionary 나온 파트가 있을까요?

0

269

0

에디터 연동방법 링크접속이 안됩니다

0

234

0