반응형
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
반응형
그리드형
'Game Development, 게임개발 > 개발' 카테고리의 다른 글
시점에 따라 좌표축 바꾸기, Local Coordinates [Unity] (0) | 2021.03.01 |
---|---|
정해진 시간마다 Method 실행시키기 [Unity] (0) | 2021.02.25 |
Prefab(ricate), 프리팹이란? [Unity] (2) | 2021.02.25 |
Update(), FixedUpdate(), LateUpdate()의 차이 [Unity] (0) | 2021.02.24 |
GameObject 움직이는 여러가지 방법 [Unity] (0) | 2021.02.24 |