using UnityEngine;
namespace UnityEngine.XR.ARFoundation.Samples
{
///
/// Launches projectiles from a touch point with the specified .
///
[RequireComponent(typeof(Camera))]
public class ProjectileLauncher : MonoBehaviour
{
[SerializeField]
Rigidbody m_ProjectilePrefab;
public Rigidbody projectilePrefab
{
get => m_ProjectilePrefab;
set => m_ProjectilePrefab = value;
}
[SerializeField]
float m_InitialSpeed = 25;
public float initialSpeed
{
get => m_InitialSpeed;
set => m_InitialSpeed = value;
}
void Update()
{
if (m_ProjectilePrefab == null)
return;
if (Input.touchCount == 0)
return;
var touch = Input.touches[0];
if (touch.phase == TouchPhase.Began)
{
var ray = GetComponent().ScreenPointToRay(touch.position);
var projectile = Instantiate(m_ProjectilePrefab, ray.origin, Quaternion.identity);
var rigidbody = projectile.GetComponent();
rigidbody.velocity = ray.direction * m_InitialSpeed;
}
}
}
}