Game Development, 게임개발/개발

Prefab,프리팹을 이용해서 Random Spawn, 랜덤 생성해보기 [Unity]

게임이 더 좋아 2021. 2. 25. 06:11
반응형
728x170

Prefab을 어떻게 만드는지는 이전 글들을 통해 알았을 것이고

 

이제는 그 Prefab을 이용해 맘대로 소환하는 방법을 알아보자


나는 어떤 방식으로 구현할 거냐면..

Empty Object가 임의로 움직이면서 딱 그 위치에서 Instantiate를 하면 랜덤 소환이 될 것이라 생각하고 구현할 예정이다.

또는 내가 플레이 하는 범위를 정해줘서.. 그 범위에서 난수발생(Random Number를 generate)하겠다.

 

그래서 미리 만들었다.

 

그래서 코드를 만들어봤다.

public class SpawnManger : MonoBehaviour
{
    public GameObject[] animalPrefab;
    private float spawnRangeX = 20f;
    private float spawnposZ = 20;
    // Start is called before the first frame update
    void Start()
    {
        
    }

    // Update is called once per frame
    void Update()
    {
        if (Input.GetKeyDown(KeyCode.S))
        {
            Vector3 spawnPos = new Vector3(Random.Range(-spawnRangeX, spawnRangeX), 0, spawnposZ);
            int animalIndex = Random.Range(0, animalPrefab.Length);
            Instantiate(animalPrefab[animalIndex], spawnPos, animalPrefab[animalIndex].transform.rotation)
        }
        
    }
}

 

내가 생성하려는 Prefab이 여러개이기 때문에 Array로 선언을 해주고

범위를 설정해준다. 

Z는 고정 X는 Random Number의 범위가 되겠다.

 

S를 눌렀을 때 

Random position을 생성해준다.

 

그걸 Instantiate에 이용한다 끝~

 

 

 

쉽다. 하지만 내가 생각한 GameObject를 만들고 랜덤하게 움직여서 하겠다는 것은 나중에..

Rb만들고.. Addforce 해서 Collider 닿으면 반사시켜서.. 무작위로 돌아다니게 해서 Spawn하려 했지만 나중에 해야겠다 ㅎㅎ

 

 

 

 

728x90
반응형
그리드형