개발/Unity

유니티 AR - 멀티 타겟팅 : 파이어볼 발사하기 (Shoot Fireball in Vuforia)

피로물든딸기 2023. 6. 24. 21:46
반응형

Unity 전체 링크

 

참고

- 유니티 AR 뷰포리아 튜토리얼

- 멀티 타겟팅으로 오브젝트 띄우기

 

멀티 타켓팅을 이용하여 큐브에서 파이어볼이 나오도록 해보자.


연성진 만들기

 

원하는 연성진을 구한다.

 

유니티에서 Sprite로 변경 후, Apply 버튼을 누른다.

 

드래그로 Scene에 가져오면 된다.


파이어볼 만들기

 

여기서는 파이어볼 무료 에셋을 사용하였다.

https://assetstore.unity.com/packages/vfx/particles/fire-explosions/fire-spell-effects-36825

 

Fire & Spell Effects | 불 & 폭발 | Unity Asset Store

Add depth to your project with Fire & Spell Effects asset from Digital Ruby (Jeff Johnson). Find this & more 시각 효과 options on the Unity Asset Store.

assetstore.unity.com

 

Sphere를 만들어서 Materials를 교체한다.

 

이름을 변경하고 Rigidbody를 추가한다. 

Use Gravity는 체크 해제한다.

 

파이어볼에 Trail Renderer를 추가한다.

트레일 렌더러를 이용하면 물체가 움직일 때, 경로에 잔상을 쉽게 남길 수 있다.

여기서는 의 잔상을 남기기 위해 아래와 같이 설정하였다.

 

게임을 실행해서 마우스로 파이어볼을 움직여보자.

 

완성한 파이어볼은 프리팹으로 만든다.


파이어볼 발사 구현하기

 

연성진에서 마우스 클릭을 하면 파이어볼이 발사되도록 해보자.

Shooter.cs를 추가하고 프리팹으로 파이어볼을 설정한다.

 

Shooter.cs는 다음과 같다.

마법 연성진은 Rotate를 이용해 조금씩 회전하게 하였고, 마우스 클릭 이벤트가 발생하면 파이어볼이 나가게 된다.

파이어볼리지드바디AddForce로 위로 튀어나가게 하였다.

그리고 만들어진 파이어볼은 시야에 사라지면 더 이상 필요 없으므로, 2초 뒤에 사라지게 하였다.

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

public class Shooter : MonoBehaviour
{
    public GameObject fireballPrefab;
    public float shotSpeed;

    void Update()
    {
        transform.Rotate(Vector3.forward, 1.0f);

        if (Input.GetMouseButtonDown(0))
        {
            Shoot();
        }
    }

    public void Shoot()
    {
        GameObject fireball 
            = Instantiate(fireballPrefab, this.transform.position,Quaternion.identity);

        Rigidbody rb = fireball.GetComponent<Rigidbody>();
        
        rb.AddForce(transform.forward * shotSpeed);

        Destroy(fireball, 2.0f);
    }
}

 

게임을 실행해서 화면에 마우스를 클릭해보자.

 

여기까지의 실행결과는 아래의 unitypackage에서 확인 가능하다.

FireBall.unitypackage
0.83MB


멀티 타겟팅 적용하기

 

멀티 타겟팅 DB를 추가한 후, 자식 오브젝트로 위의 마법 연성진을 추가하자.

그리고 연성진과 파이어볼의 Scale, Trail Renderer의 Width, 파이어볼의 Shot Speed를 적절히 맞춘다.

즉, 위에서 만든 마법 연성진을 MultiTarget의 크기에 맞추면 된다.

 

카메라에 연성진이 나타나고 클릭을 하면 파이어볼이 발사된다.

뜨거우니 화상에 조심하자.

 

반응형