Uing? Uing!!

카페오냥 개발 - 04. 유니티 프리팹(prefab)으로 대량 생산하기 본문

Unity

카페오냥 개발 - 04. 유니티 프리팹(prefab)으로 대량 생산하기

Uing!! 2019. 7. 5. 17:53
반응형

고양이 한 마리를 애니메이션과 애니메이터를 이용해 움직이게 해 놓고 나서, 이번에는 고양이 여러 마리를 연달아 카페에 나타나게 하는 작업을 진행하였다.

같은 동작을 하는 고양이를 여러 마리 새로 뽑아내는 데에는 prefab기능을 사용할 수 있었다.

 

우선 Hierarchy 안에 cat을 한 마리 만들어 놓고, 거기에 애니메이션과 스프라이트, 스크립트 등을 원하는 대로 입혔다.

그리고 만들어진 cat을 프로젝트 뷰로 드래그하면 그게 고양이의 prefab이 된다. 원래 만들었던 고양이는 삭제하였다.

이 후로 프로젝트 뷰의 catPrefab을 꺼내면 바로 기존에 적용했던 모든 속성들이 다 적용된 객체가 생성된다.

 

그리고 catGenerator라는 emptyObject를 생성 후, 다음과 같은 스크립트를 적용하여 이 prefab을 5초 단위로 생성하도록 하였다. span초(5초)만큼의 시간이 지나면 새로운 catPrefab이 생성된다.

using System.Collections; 
using System.Collections.Generic; 
using UnityEngine; 

public class CatGenerator : MonoBehaviour { 

    GameObject gameDirector; 
    public GameObject catPrefab; 
    float span = 5.0f; // time for new cat 
    float delta = 0; 
    int catIdx; 

    // Start is called before the first frame update 
    void Start() { 
        this.gameDirector = GameObject.Find("gameDirector"); 
    } 

    // Update is called once per frame 
    void Update() { 
        this.delta += Time.deltaTime; 
        if (this.delta > this.span && gameDirector.GetComponent().emptySeatCnt > 0) { 
            this.delta = 0; 
            GameObject go = Instantiate(catPrefab) as GameObject; 
            go.transform.position = new Vector3(1.6f, 2.2f, 0); 
        } 
    } 
} 

적용 후 마지막으로 catGenerator의 위 코드가 적용된 스크립트에서 catPrefab에 아까 작성해 둔 프리팹을 드래그하였다. 이렇게 적용한 뒤 코드를 실행하자 고양이들이 5초마다 나타나 랜덤한 자리에 앉기 시작했다.

 

 

이제 여러 종류의 고양이를 랜덤하게 나타나게 하고 싶은데, 여기에서 막혀 있는 상태다. 성공 후에 다음 글 올려야지.

반응형
Comments