Contents
접기
728x90
장애물 중력, 충돌구현
Hierarchy우클릭 > 2D Object > Sprites > Square
Position Y: 3
중력구현
Square Inspector의 AddComponent > Rigidbody 2D
Order in Layer: 1 (Shield, balloon도 적용)
충돌구현
Square: Box Collider 2D
Shield: Circle Collider 2D
Balloon: Circle Collider 2D
장애물(스퀘어) 위치, 사이즈 랜덤
Square Script
void Start()
{
// 시작 위치 랜덤
float x = Random.Range(-3.0f, 3.0f); // 최솟값, 최댓값
float y = Random.Range(3.0f, 5.0f);
transform.position = new Vector2(x, y); //x값, y값
// 스퀘어 사이즈 랜덤
float size = Random.Range(0.5f, 1.5f);
transform.localScale = new Vector2(size, size); // size아니고 localScale해야 size에 접근가능/ x값, y값
}
📌 X(-3~3) Y(3~5)
📌 square script 생성 후 square에 붙여주기
장애물(스퀘어) 여러개 생성
게임의 전체적인 진행을 관리해주는 곳 => 게임매니저
- Hierarchy우클릭 > Create Empty > GameManager생성
- Script우클릭 > C# Script > GameManger생성
- GameManager오브젝트에 GameManger 스크립트 붙이기
반복생성을 위한 Square를 Prefab으로 만들기
- Asset폴더에 Prefabs폴더 만들기
- Hierarchy에 있는 Square오브젝트를 Project의 Prefabs폴더로 끌어옮겨주기
- 옮긴후 Hierarchy에 있는 Square는 지우기
GameManager Script
public class GameManager : MonoBehaviour
{
public GameObject square; //프리팹을 변수에 넣어둠
void Start()
{
InvokeRepeating("MakeSquare", 0f, 1f); // 함수이름, 언제실행시킬건지(바로 실행시 0f), 얼마만큼 자주 실행시킬건지
}
// Update is called once per frame
void Update()
{
}
void MakeSquare()
{
Instantiate(square); //스퀘어 프리팹 생성
//Debug.Log("생성한다");
}
}
반복적으로 무언가를 실행시키는 함수 InvokeRepeating(문자열 메소드이름)
void MakeSquare함수를 생성하기
제대로 생성되는지 확인을 위해 MakeSquare에 Debug.Log("생성한다")를 적어 확인
프리팹을 반복적으로 생성하기 위해 프리팹을 변수에 넣어놔야함
프리팹을 생성하는 코드 Instantiate
유니티로 돌아와서,
게임매니저에 Prefab을 넣어줘야함
Prefab에 있는 square를 GameManager의 square변수에 드래그 앤 드롭
결과화면
728x90
'GameDevelop > Unity기초쌓기' 카테고리의 다른 글
[Unity] 게임 종료 판넬 만들기 (1) | 2025.04.06 |
---|---|
[Unity] 시간 구현하기 (0) | 2025.04.06 |
[Unity] 마우스 따라 움직이는 Shield-ScreenToWorldPoint() (0) | 2025.04.04 |
[Unity] 풍선 애니메이션 (0) | 2025.04.03 |
[Unity] ProtectBalloon기본 세팅 (0) | 2025.04.03 |