Есть метод Fire нужно чтобы при вызове метода воспроизводился звук, не могу понять как лучше это реализовать, помогите!)
Сижу ломаю голову, вызвать по нажатию кнопки могу, но было бы правильнее вызывать вместе с методом Fire
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
namespace SpaceShooter
{
public class Turret : MonoBehaviour
{
[SerializeField] private TurretMode m_Mode;
public TurretMode Mode => m_Mode;
[SerializeField] private TurretProperties m_TurretProperties;
private float m_RefireTimer;
public bool CanFire => m_RefireTimer <= 0;
private Ship m_Ship;
private void Start()
{
m_Ship = transform.root.GetComponent<Ship>();
}
private void Update()
{
if (m_RefireTimer > 0)
m_RefireTimer -= Time.deltaTime;
}
// Public API
public void Fire()
{
if (m_TurretProperties == null) return;
if (m_RefireTimer > 0) return;
Projectile projectile = Instantiate(m_TurretProperties.ProjectilePrefab).GetComponent<Projectile>();
projectile.transform.position = transform.position;
projectile.transform.up = transform.up;
m_RefireTimer = m_TurretProperties.RateOfFire;
{
//SFX
}
}
public void AssignLoadout(TurretProperties props)
{
if (m_Mode != props.Mode) return;
m_RefireTimer = 0;
m_TurretProperties = props;
}
}
}
Ответы (1 шт):
Автор решения: Kurwo Attano
→ Ссылка
На камере есть (если нет то сделай) AudioListener, если стреляет гг, то туда же на камеру можно прикрепить AudioSource и им воспроизводить звук. Прикрепи в него свой звук и делай что то типо
GetComponent < AudioListener > ().Play();
AudioSource вобще крепи туда от куда должен быть звук, чтоб направление тоже играло роль. см. документацию по AudioSource https://docs.unity3d.com/ScriptReference/AudioSource.html