Quero colocar um som de tiro
2 participantes
Página 1 de 1
Quero colocar um som de tiro
Alguém pode me ajudar?
using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class Gun : MonoBehaviour
{
[Header("Gun Configuration")]
public float damage;
public float range;
public float firerate;
public float waitToFirerate;
public Camera cam;
public ParticleSystem ammoParticle;
public GameObject impact;
public bool hold = false;
[Space]
[Header("Ammo")]
public int maxAmmoInPaint;
public int AmmoInPaint;
public int Ammo;
public int TimeToRecharge;
[Space]
[Header("Canvas")]
public Text ammotxt;
public Slider rechargeShow;
public GameObject rechargeGO;
private bool rechargeb = false;
private int timetr;
void Update()
{
rechargeShow.value = timetr;
ammotxt.text = AmmoInPaint + "/" + Ammo;
if (Input.GetButtonDown("Fire1"))
hold = true;
if (Input.GetButtonUp("Fire1"))
hold = false;
if (hold == true)
waitToFirerate += 1;
if (waitToFirerate > firerate && AmmoInPaint > 0)
Shoot();
if (Input.GetButtonDown("Recharge") && AmmoInPaint != maxAmmoInPaint && Ammo != 0 && rechargeb == false)
{
rechargeGO.SetActive(true);
rechargeb = true;
}
if (rechargeb == true)
{
if (timetr > TimeToRecharge)
{
for (int i = 0; i < maxAmmoInPaint; i++)
{
if (AmmoInPaint < maxAmmoInPaint && Ammo > 0)
{
Ammo -= 1;
AmmoInPaint += 1;
}
else
{
break;
}
}
rechargeb = false;
timetr = 0;
rechargeGO.SetActive(false);
}
}
else
{
timetr += 1;
}
}
private void Start()
{
rechargeShow.maxValue = TimeToRecharge;
}
void Shoot()
{
waitToFirerate = 0;
AmmoInPaint -= 1;
ammoParticle.Play();
AudioSorce.Play();
RaycastHit hit;
if (Physics.Raycast(cam.transform.position, cam.transform.forward, out hit, range))
{
Debug.Log("Mirando em: " + hit.transform.name);
ObjectDestroyable ob = hit.transform.GetComponent<ObjectDestroyable>();
if (ob != null)
ob.takeDamage(damage);
GameObject impactGO = Instantiate(impact, hit.point, Quaternion.LookRotation(hit.normal));
}
}
}
using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class Gun : MonoBehaviour
{
[Header("Gun Configuration")]
public float damage;
public float range;
public float firerate;
public float waitToFirerate;
public Camera cam;
public ParticleSystem ammoParticle;
public GameObject impact;
public bool hold = false;
[Space]
[Header("Ammo")]
public int maxAmmoInPaint;
public int AmmoInPaint;
public int Ammo;
public int TimeToRecharge;
[Space]
[Header("Canvas")]
public Text ammotxt;
public Slider rechargeShow;
public GameObject rechargeGO;
private bool rechargeb = false;
private int timetr;
void Update()
{
rechargeShow.value = timetr;
ammotxt.text = AmmoInPaint + "/" + Ammo;
if (Input.GetButtonDown("Fire1"))
hold = true;
if (Input.GetButtonUp("Fire1"))
hold = false;
if (hold == true)
waitToFirerate += 1;
if (waitToFirerate > firerate && AmmoInPaint > 0)
Shoot();
if (Input.GetButtonDown("Recharge") && AmmoInPaint != maxAmmoInPaint && Ammo != 0 && rechargeb == false)
{
rechargeGO.SetActive(true);
rechargeb = true;
}
if (rechargeb == true)
{
if (timetr > TimeToRecharge)
{
for (int i = 0; i < maxAmmoInPaint; i++)
{
if (AmmoInPaint < maxAmmoInPaint && Ammo > 0)
{
Ammo -= 1;
AmmoInPaint += 1;
}
else
{
break;
}
}
rechargeb = false;
timetr = 0;
rechargeGO.SetActive(false);
}
}
else
{
timetr += 1;
}
}
private void Start()
{
rechargeShow.maxValue = TimeToRecharge;
}
void Shoot()
{
waitToFirerate = 0;
AmmoInPaint -= 1;
ammoParticle.Play();
AudioSorce.Play();
RaycastHit hit;
if (Physics.Raycast(cam.transform.position, cam.transform.forward, out hit, range))
{
Debug.Log("Mirando em: " + hit.transform.name);
ObjectDestroyable ob = hit.transform.GetComponent<ObjectDestroyable>();
if (ob != null)
ob.takeDamage(damage);
GameObject impactGO = Instantiate(impact, hit.point, Quaternion.LookRotation(hit.normal));
}
}
}
PROgamadornoob- Iniciante
- PONTOS : 1213
REPUTAÇÃO : 3
Respeito as regras :
Re: Quero colocar um som de tiro
Vamos lá, primeiro precisaremos de uma variável que será o som, como não faremos nada mais que tocar o áudio uma variável do tipo AudioSource deve servir.
Então declare junto com as outras :
Assigne esse objeto na variável Som_do_Tiro (Aba inspector).
Agr o comando para tocar o som é esse aqui :
Basta colocar essa linha quando quiser que o áudio toque, geralmente quando vc solta o tiro.
Você pode usar essa mesma lógica e criar uma outra variável para um som de recarga da arma por exemplo, basta trocar os nomes e os lugares onde são chamadas.
Então declare junto com as outras :
- Código:
public AudioSource Som_do_Tiro;
Assigne esse objeto na variável Som_do_Tiro (Aba inspector).
Agr o comando para tocar o som é esse aqui :
- Código:
Som_do_Tiro.Play();
Basta colocar essa linha quando quiser que o áudio toque, geralmente quando vc solta o tiro.
Você pode usar essa mesma lógica e criar uma outra variável para um som de recarga da arma por exemplo, basta trocar os nomes e os lugares onde são chamadas.
Re: Quero colocar um som de tiro
Deu + ou - certo mas quando eu seguro pra atirar ele não solta vários áudios apenas um e quando começa solta o áudio o script agr ta assim
- Código:
using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class Gun : MonoBehaviour
{
[Header("Gun Configuration")]
public float damage;
public float range;
public float firerate;
public float waitToFirerate;
public Camera cam;
public AudioSource Som_do_Tiro;
public ParticleSystem ammoParticle;
public GameObject impact;
public bool hold = false;
[Space]
[Header("Ammo")]
public int maxAmmoInPaint;
public int AmmoInPaint;
public int Ammo;
public int TimeToRecharge;
[Space]
[Header("Canvas")]
public Text ammotxt;
public Slider rechargeShow;
public GameObject rechargeGO;
private bool rechargeb = false;
private int timetr;
void Update()
{
rechargeShow.value = timetr;
ammotxt.text = AmmoInPaint + "/" + Ammo;
if (Input.GetButtonDown("Fire1"))
hold = true;
if (Input.GetButtonUp("Fire1"))
hold = false;
if (hold == true)
waitToFirerate += 1;
if (waitToFirerate > firerate && AmmoInPaint > 0)
Shoot();
if (Input.GetButtonDown("Recharge") && AmmoInPaint != maxAmmoInPaint && Ammo != 0 && rechargeb == false)
{
rechargeGO.SetActive(true);
rechargeb = true;
}
if (rechargeb == true)
{
if (timetr > TimeToRecharge)
{
for (int i = 0; i < maxAmmoInPaint; i++)
{
if (AmmoInPaint < maxAmmoInPaint && Ammo > 0)
{
Ammo -= 1;
AmmoInPaint += 1;
}
else
{
break;
}
}
rechargeb = false;
timetr = 0;
rechargeGO.SetActive(false);
}
}
else
{
timetr += 1;
}
}
private void Start()
{
rechargeShow.maxValue = TimeToRecharge;
}
void Shoot()
{
waitToFirerate = 0;
AmmoInPaint -= 1;
Som_do_Tiro.Play();
ammoParticle.Play();
RaycastHit hit;
if (Physics.Raycast(cam.transform.position, cam.transform.forward, out hit, range))
{
Debug.Log("Mirando em: " + hit.transform.name);
ObjectDestroyable ob = hit.transform.GetComponent<ObjectDestroyable>();
if (ob != null)
ob.takeDamage(damage);
GameObject impactGO = Instantiate(impact, hit.point, Quaternion.LookRotation(hit.normal));
}
}
}
PROgamadornoob- Iniciante
- PONTOS : 1213
REPUTAÇÃO : 3
Respeito as regras :
Tópicos semelhantes
» Fiz um prototipo do jogo, quero mostrar a todos, e agora? qual topico colocar???
» Nao quero um script novo quero aprender onde errei
» Me Ajudem Com esse Menu do Anime Sword Art Online
» quero corverter uma int em string
» quero aprender o C# script!
» Nao quero um script novo quero aprender onde errei
» Me Ajudem Com esse Menu do Anime Sword Art Online
» quero corverter uma int em string
» quero aprender o C# script!
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos