게임의 전반적인 진행을 위해서 필요한 로직은 게임 매니저(Game Manager)에서 관리하는 것이 관행적
Hierarchy에서 Create Empty > GameManager라는 object를 생성한다.
GameManger 스크립트도 생성하여 GameManager object에 붙여준다.
Prefab, 붕어빵틀
여러개의 빗방울을 생성하기 위해서는 Rain오브젝트를 프리팹화 해주어야한다.
프리팹이라는 것은 붕어빵틀 같은 존재이다. 붕어빵 틀에다가 반죽만 부으면 붕어빵모양이 그대로 찍혀나오는 것과 같다.
이와같이 반복적으로 게임 오브젝트를 생성하기위해서 만들어놓은것이 바로 프리팹이다.
Prefab을 만들기 위해 Project에 Prefabs라는 폴더를 생성한다.
그리고 Prefabs폴더에 Rain오브젝트를 드래그 앤 드롭 해준다.
그러면 Rain오브젝트가 파란색으로 변하는데, 이게 프리팹으로 관리되고 있다는 뜻이다.
이제 빗방울을 계속 생성해주기 위해서 GameManager 스크립트를 열어보자
프리팹은 어떻게 가져올 수 있을까?
public GameObject rain;
GameManager 스크립트를 열어서 위 코드를 start함수 위에 작성한 후 저장을 누르면,
이렇게 원래는 없었던 Rain이 생긴다.
이 Rain의 None자리에 Rain오브젝트를 끌어와보자.
이 변수안에 Rain이라는 프리팹 데이터가 들어가게된다.
그러면 이제 반복적으로/생성한다 두가지로 나눠서 GameManager에 함수를 작성해보자.
함수는 반복적으로 실행되는 로직을 하나로 묶어 놓은 단위를 얘기한다.
빗방울 생성 Instantiatie
빗방울 생성함수
void MakeRain()
{
Instantiate(rain);
}
Instantiatie 는 생성함수 - 생성하고 싶은 붕어빵 틀, 즉 프리팹을 넣어주면 됨
그리고 MakeRain은 시작할때 실행되는 Start에서 호출한다.
void Start()
{
MakeRain();
}
하지만 이렇게 하면 빗방울이 한개밖에 생성되지 않는다.
빗방울을 반복생성 해주기 위해 InvokeRepeating함수를 써줄 것이다.
빗방울 무한 생성 InvokeRepeating
함수 반복실행을 통한 빗방울 생성
void Start()
{
InvokeRepeating("MakeRain", 0f, 1f); //MakeRain함수, 바로생성, 1초마다 한번씩 생성
}
InvokeRepeating은 반복적으로 함수를 실행해준다.
InvokeRepeating("함수의 이름", 몇 초 이후에 생성할래?, 얼마나 자주 생성할래?(주기)) 순으로 써준다.
그 후 실행을 하면 아래와 같이 빗방울이 계속 생성되는 것을 확인할 수 있다
'GameDevelop > Unity기초쌓기' 카테고리의 다른 글
[Unity] Canvas 점수보드 UI, 폰트 (0) | 2025.03.28 |
---|---|
[Unity] UnassignedReferenceException오류 (0) | 2025.03.28 |
[Unity] 빗방울 랜덤생성 Random.Range (0) | 2025.03.27 |
[Unity] Tag생성 (0) | 2025.03.27 |
[Unity] 중력,충돌로 빗방울구현 Rigidbody,Collider (0) | 2025.03.27 |