참고
멀티 타켓팅을 이용하여 큐브에서 파이어볼이 나오도록 해보자.
연성진 만들기
원하는 연성진을 구한다.
유니티에서 Sprite로 변경 후, Apply 버튼을 누른다.
드래그로 Scene에 가져오면 된다.
파이어볼 만들기
여기서는 파이어볼 무료 에셋을 사용하였다.
https://assetstore.unity.com/packages/vfx/particles/fire-explosions/fire-spell-effects-36825
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에서 확인 가능하다.
멀티 타겟팅 적용하기
멀티 타겟팅 DB를 추가한 후, 자식 오브젝트로 위의 마법 연성진을 추가하자.
그리고 연성진과 파이어볼의 Scale, Trail Renderer의 Width, 파이어볼의 Shot Speed를 적절히 맞춘다.
즉, 위에서 만든 마법 연성진을 MultiTarget의 크기에 맞추면 된다.
카메라에 연성진이 나타나고 클릭을 하면 파이어볼이 발사된다.
뜨거우니 화상에 조심하자.
Unity Plus:
Unity Pro:
Unity 프리미엄 학습:
'개발 > Unity' 카테고리의 다른 글
유니티 AR - 모델 타겟팅으로 오브젝트 띄우기 (Vuforia Model Targeting) (0) | 2023.06.25 |
---|---|
유니티 AR - 클라우드에 데이터 베이스 만들기 (Vuforia Cloud Recognition) (0) | 2023.06.25 |
유니티 AR - OnTargetFound, Lost로 AR 오브젝트 추적하기 (Track AR Object) (0) | 2023.06.24 |
유니티 AR - 이미지 타겟팅 : 사진을 누르면 비디오 실행하기 (Video PlayBack in Vuforia) (0) | 2023.06.24 |
유니티 AR - 이미지 타겟팅 : 원소를 합쳐서 물 만들기 (AR Chemical Formula For Water in Vuforia) (0) | 2023.06.21 |
댓글