728x90
오브젝트 풀에서 자동차 오브젝트를 소환하여 사용하는 것에 대해 알아보겠습니다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
|
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class ObjectSpawn : MonoBehaviour
{
public ObjectManager objectManager;
public float spawnBetTimeMin;
public float spawnBetTimeMax;
float spawnTime;
float nextSpawnTime;
float timeAfterSpawn;
float randomSpawnTime;
int carCount;
string[] carName;
void Start()
{
nextSpawnTime = 1f;
carCount = 0;
carName = new string[] { "car1", "car2", "car3", "car4", "car5", "car6", "car7", "car8", "car9"};
}
|
- objectManager - ObjectManager 스크립트를 저장할 변수이다.
- spawnBetTimeMin - 자동차 소환 주기 최소 시간을 저장할 변수이다.
- spawnBetTimeMax - 자동차 소환 주기 최대 시간을 저장할 변수이다.
- spawnTime - timeAfterSpawn과 randomSpawnTime을 더한 값을 저장할 변수이다.
- nextSpawnTime - 다음 소환 시간을 저장할 변수이다.
- timeAfterSpawn - 게임 진행 시간을 저장할 변수이다.
- randomSpawnTime - 자동차 소환 주기 최소와 최대 값 중에 랜덤의 값을 저장할 변수이다.
- carCount - 자동차 소환 횟수를 저장할 변수이다.
- carName - 오브젝트 풀에 있는 오브젝트들의 이름을 저장할 변수이다.
Start 함수를 통해서 변수들을 초기화 해준다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
void Update()
{
timeAfterSpawn += Time.deltaTime;
CarSpawn();
}
void CarSpawn()
{
if(timeAfterSpawn >= nextSpawnTime)
{
carCount++;
int carSequence = carCount % carName.Length;
GameObject carObject = objectManager.MakeObject(carName[carSequence]);
spawnTime = Random.Range(spawnBetTimeMin, spawnBetTimeMax);
nextSpawnTime = timeAfterSpawn + spawnTime;
}
}
}
|
Update 함수를 통해서 timeAfterSpawn을 계속해서 증가시켜준다.
그리고 CarSpawn을 통해서 자동차 오브젝트를 순서대로 만들어주고, 다음 생성 시간을 정해준다.
728x90
'Project > 우다다다 고영희' 카테고리의 다른 글
[우다다다 고영희] Unity: 오브젝트 파괴(완성) (1) | 2020.05.29 |
---|---|
[우다다다 고영희] Unity: 게임 매니저 스크립트 (0) | 2020.05.28 |
[우다다다 고영희] Unity: 자동차 오브젝트 움직이기 (0) | 2020.05.26 |
[우다다다 고영희] Unity: UI 화면 구성하기 (0) | 2020.05.25 |
[우다다다 고영희] Unity: 오브젝트 풀링을 이용한 무한 장애물 (0) | 2020.05.24 |