5일차 - 프리펩으로 폭발애니메이션 만들기

그냥 부딪혀서 사라지다보니까 조금 뭔가 밋밋한것 같습니다. 조금더 게임을 멋지게 하기 위해서, 부딪히면 폭발하는 애니메이션을 넣어볼건데요.

이 스프라이트를 이용해서 만들건데요. explosion 스프라이트를 선택한 뒤,

마찬가지로 다른 스프라이트들과 같이 sprite, multiple, point, 128, truecolor로 설정해줍시다. 이전에 설명한 것들이니 생략하고 넘어가겠습니다.

마찬가지로 스프라이트를 잘라서 애니메이션을 만들 준비를 해줍시다.

그럼 이제 스프라이트로 애니메이션을 하나 만들어 줍시다.

애니메이션에서는 폭발하는 애니메이션이 딱 한번만 재생되도록 해야하니 Loop Time의 체크를 풀어줍시다.

Loop Time은 애니메이션을 반복할지를 결정하는 옵션입니다.

그리고 애니메이션 컨트롤러에서 explosion 애니메이션의 속도를 0.5로 맞춰서 조금 느리게 재생하도록 합시다.

using UnityEngine;
using System.Collections;

public class explosion : MonoBehaviour {
    void Start () {
        Destroy(this.gameObject, 0.8f);
        //객체가 생성된 뒤 0.8초 뒤에 객체를 삭제합니다.
    }
    void Update () {

    }
}

explosion 스크립트를 하나 생성해서 위와 같이 작성한뒤 아까 애니메이션을 만들면서 생성된 객체에 스크립트를 붙여줍시다.

그럼 이제 이 explosion 객체를 Prefab으로 만들어줄건데요.

Prefab이란? 객체를 마치 파일처럼 저장해서 어디서나, 언제든지, 얼마든지 쓸 수 있도록 합니다. 같은 객체를 여러개로 만들거나, 스크립트에서 객체를 가져올때 유용합니다.

그리고 Prefab을 관리하기 위한 폴더를 하나 만들어 줍시다.

그리고 Hierarchy View에 있는 explosion을 선택해서 Project View로 드래그하면 Prefab이 생성됩니다.

이것이 Prefab입니다.

그리고 Player의 스크립트를 조금 수정해 줄건데요.

public GameObject explosionPrefab;

public으로 GameObject타입의 변수를 하나 선언해줍시다. 여기에 Prefab을 담을건데요.

public으로 선언하게 되면 Inspector View에서 관리할 수 있게 되는데요. 아까만든 Prefab을 여기에 드래그해서 담아줍시다.

그리고 충돌시 호출되는 OnCollisionEnter2D 함수 부분도 조금 수정해줍시다.

void OnTriggerEnter2D(Collider2D other)
    {
        if (other.gameObject.tag.Equals("Enemy"))
        {
            /* 여기서 부터 추가된 부분*/
            Instantiate(explosionPrefab,
            // Instantiate는 객체를 하나 생성(복제)합니다 첫번째 인자로는 생성할 객체의 원본을 넣어주고
                this.transform.position,
                //두번째 인자로는 생성될 위치를 넣어줍니다. this.transform.position은 자기자신의 위치를 나타냅니다.
                Quaternion.identity);
                //세번째 인자로는 객체의 회전값을 넣어주는데요, Quaternion.identity는 회전이 적용되지 않은 값을 나타냅니다.
            /* 여기까지 */
            Destroy(other.gameObject);
            Destroy(this.gameObject);
        }
    }

이제 실행해보면 충돌시 애니메이션이 나오는 것을 확인할 수 있습니다.

results matching ""

    No results matching ""