Instanciar line renderer do cano da arma ate o hit do raycast
Página 1 de 1
Instanciar line renderer do cano da arma ate o hit do raycast
Eu ja fiz todo o script da arma, mas quero usar o linerenderer para desenhar uma linha do ponto que começa o raycast (boca da arma) até o RaycastHit dele (cam.transform.forward, out hit, alcance)
Script da arma :
(podem usar no projeto de vcs tbm)
Script da arma :
(podem usar no projeto de vcs tbm)
- Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class GunRaycast : MonoBehaviour
{
//geral
public float range;
public float fireRate;
float waitToFireRate;
public Camera cam;
public ParticleSystem muzzleFlash;
public GameObject shootSoundPrefab;
public Animator anim;
//municao
public int maxBulletsInMag;
int bulletsInMag;
public int bulletsToReload;
bool canReload;
public float reloadTime;
bool reloading;
//UI
public Text bullets;
public Text reloadingText;
public Slider extraReloadSymbol;
void Start()
{
bulletsInMag = maxBulletsInMag;
}
// Update is called once per frame
void Update()
{
if(bulletsInMag > 0)
{
if (Input.GetButton("Fire1") && reloading == false)
{
waitToFireRate +=1f;
anim.SetBool("Hold", true);
}else
{
anim.SetBool("Hold", false);
}
if(waitToFireRate >= fireRate)
{
waitToFireRate = 0f;
anim.SetBool("Hold", true);
Shoot();
}
}
if(bulletsInMag == 0)
{
anim.SetBool("Hold", false);
}
bullets.text = bulletsInMag + "/" + maxBulletsInMag;
if(bulletsInMag < maxBulletsInMag)
{
canReload = true;
}else
{
canReload = false;
}
if(canReload)
{
if(Input.GetKeyDown(KeyCode.R))
{
StartCoroutine("Reload");
canReload = false;
}
}
extraReloadSymbol.value = bulletsInMag;
extraReloadSymbol.minValue = 0;
extraReloadSymbol.maxValue = maxBulletsInMag;
if (Input.GetMouseButton(1))
{
anim.SetBool("Ads", true);
}
else
anim.SetBool("Ads", false);
}
void Shoot()
{
RaycastHit hit;
if(Physics.Raycast(cam.transform.position, cam.transform.forward, out hit, range));
{
bulletsInMag -=1;
bulletsToReload +=1;
muzzleFlash.Play();
Instantiate(shootSoundPrefab);
}
}
IEnumerator Reload()
{
reloadingText.gameObject.SetActive(true);
reloading = true;
yield return new WaitForSeconds(reloadTime);
reloading = false;
reloadingText.gameObject.SetActive(false);
bulletsInMag += bulletsToReload;
bulletsToReload = 0;
}
}
vini024- Membro
- PONTOS : 1860
REPUTAÇÃO : 9
Respeito as regras :
Tópicos semelhantes
» [RESOLVIDO]Checar touch em objetos e Raycast Raycast..
» Raycast - Spawnar objeto na colisão do raycast
» [AJUDA]Atira "balas" de um cano que se Rotaciona
» Sprite Renderer
» Sprite Renderer em canvas
» Raycast - Spawnar objeto na colisão do raycast
» [AJUDA]Atira "balas" de um cano que se Rotaciona
» Sprite Renderer
» Sprite Renderer em canvas
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos