유니티_unity

(유니티) 프리팹 Prefab: 하늘에서 개구리가 떨어져요

코딩ABC 2024. 4. 4. 15:09
반응형

유니티에서 프리팹(prefab)을 사용하는 방법에 대해 알아보겠습니다.

 

"프리팹"은 재사용 가능한 게임 오브젝트의 템플릿입니다. 쉽게 말해, 여러 번 사용될 수 있는 게임 오브젝트의 복사본으로 생각할 수 있습니다. 프리팹을 사용하면 유사한 오브젝트를 쉽게 만들고 유지 보수할 수 있습니다. 한 번 수정하면 해당 프리팹을 사용하는 모든 인스턴스에 자동으로 반영됩니다. 이것은 게임 개발 프로세스를 효율적으로 만들어주고, 일관성을 유지하며 시간을 절약하는 데 도움이 됩니다.

 

여기에서는 하늘에서 개구리가 무작위로 떨어지는 모양을 프리팹을 이용해서 만들어 보겠습니다.

 

1. 준비물 - 아래의 개구리 이미지

개굴 개굴 개구리

 

2. 프로젝트를 생성합니다 - 2D, 이름은 맘대로 ...

 

3. 개구리 이미지(frog.png)를 Asset으로 가져옵니다.

 

4. 화면에 개구리 이미지를 배치합니다.

유니티, 프리팹

 

5.  C# 스크립트를 생성하고, 스크립트 이름을 "FrogController"로 변경합니다.

 

6. 스크립트를 아래와 같이 작성합니다.

using UnityEngine;

public class FrogController : MonoBehaviour
{
    // Update is called once per frame
    void Update()
    {
        transform.Translate(0, -0.1f, 0);  // 아래로 떨어집니다.
        
        // 화면 아래로 떨어지면 현재 객체(개구리)를 삭제합니다.
        if(transform.position.y < -5.0f)  
        {
            Destroy(gameObject);
        }
    }
}

 

7. 스크립트를 Hierarchy 창의 "frog"와 연결합니다.

 

8. 실행해 봅니다 - 개구리가 위에서 아래로 떨어지는 것을 확인합니다.

 

프리팹(Prefab)

다음은 프리팹을 이용해서 개구리가 무작위로 떨어지도록 만들어 보겠습니다.

 

9. Hierarchy 창에 있는 "frog"를 Assets 창으로 끌어옵니다 - 이렇게 하면 프리팹이 만들어 집니다.

이름을 "frogPrefab"으로 변경합니다.

프리팹이 만들어 졌으면 Hierarchy 창의 "frog"는 필요없으므로 삭제합니다.

유니티, 프리팹

 

10. 프리팹을 사용할 스크립트를 한 개 추가합니다 - 이름을 "FrogGenerator"라고 변경합니다.

 

11.  코드를 작성합니다.

using UnityEngine;

public class FrogGenerator : MonoBehaviour
{
    public GameObject frogPrefab;
    float speed = 1.0f;
    float time = 0f;
    
    // Start is called before the first frame update
    void Start()
    {
        Application.targetFrameRate = 60;
    }

    // Update is called once per frame
    void Update()
    {
        time += speed / 60;
        if (time > speed)
        {
            time = 0;
            int x = Random.Range(-6, 6);  // -6 ~ 5의 랜덤한 정수
            int y = Random.Range(3, 5);
            GameObject flog = Instantiate(frogPrefab);
            flog.transform.position = new Vector3(x, y, 0);
        }
    }
}

 

12. 빈 오브젝트를 한 개 생성하고, 이름을 "FrogGenerator"라고 변경합니다.

 

13.  이 오브젝트와 "FrogGenerator" 스크립트를 연결합니다.

 

14. 아래와 같이 "FrogGenerator"  스크립트와 프리팹을 연결합니다.

유니티, 프리팹

 

15. 실행합니다.

 

 

반응형