Coletavel para carregar a arma?
4 participantes
Página 1 de 1
Coletavel para carregar a arma?
Estou tentando criar um script parecido com aquele dos coletaves para a barra de vida,estamina,fome e cede mais quero que seja um para carregar a arma quando eu pegalo apertando (E) ele adiciona-se tipo assim +12 Municao
ajuda ai amigos
ajuda ai amigos
Última edição por Callyde Jr em Qui Set 13, 2018 6:26 am, editado 1 vez(es)
Re: Coletavel para carregar a arma?
Eu não sei se é assim que voce quer, mas ja é uma base:
Voce pode usar tambem Vector3.distance para verificar se o player esta perto do coletavel
Voce pode usar tambem Vector3.distance para verificar se o player esta perto do coletavel
- Código:
using UnityEngine;
using System.Collections;
public class Coletar : MonoBehaviour {
private bool pertoDoItem = false;
public int municao, valorMunicao;
void Start(){
valorMunicao = 12;
}
void Update(){
if(Input.GetKeyDown("e") && pertoDoItem == true){ // Se o player estiver perto da muniçao e pressiona E
municao = municao + valorMunicao; // Adiciona o valor que voce atribuir em "valorMunicao" ao seu numero atual de munição
Destroy(gameObject); // Destroi o coletavel
}
}
void OnTriggerEnter(Collider col){
if (col.gameObject.tag == "Player") { // verifica se o objeto que esta perto do coletavel é o player
pertoDoItem = true;
}
}
void OnTriggerExit(Collider coli){
if (coli.gameObject.tag == "Player") { // verifica se o objeto que saiu de perto do coletavel é o player
pertoDoItem = false;
}
}
}
Re: Coletavel para carregar a arma?
Tem como postar o sistema que você está utilizando? Este sistema de coleta é feito em cima do seu sistema de armas, então precisamo saber como você está fazendo.
Re: Coletavel para carregar a arma?
- Código:
#pragma strict
//Script da Arma
var Projetil : GameObject;
var somArma : AudioClip;
var canoArma : Transform;
var fogoArma : ParticleSystem;
var municao : int;
function Start () {
municao = 12;
}
function Update () {
if (Input.GetMouseButtonDown(0))
{
if (municao > 0) {
municao = municao -1;
fogoArma.Emit(1);
GetComponent.<AudioSource>().Play();
Instantiate(Projetil,transform.position,transform.rotation);
}
}
}
Última edição por John Rambo em Qua Jul 27, 2016 9:08 pm, editado 1 vez(es) (Motivo da edição : Inserir scripts dentro da caixa de códigos)
Re: Coletavel para carregar a arma?
Porque não usa c#?
vai ser mais facil acessar as munições
Se quiser ja ate converti o script para c#
vai ser mais facil acessar as munições
Se quiser ja ate converti o script para c#
- Código:
using UnityEngine;
using System.Collections;
public class ArmaScript : MonoBehaviour {
public GameObject projetil;
public int municao = 12;
public Transform canoArma;
public AudioClip somArma;
public ParticleSystem fogoArma;
void Update (){
if (Input.GetMouseButtonDown (0) && municao > 0) {
municao = municao - 1;
fogoArma.Emit (1);
GetComponent<AudioSource> ().PlayOneShot (somArma);
Instantiate (projetil, transform.position, transform.rotation);
}
}
}
Re: Coletavel para carregar a arma?
Ele coletou mais nao adicionou mais muniçao vou colocar esse script em C# e vou ver se funciona blz
Re: Coletavel para carregar a arma?
Eu sei que não adicionou, voce tem que acessar a variavel das munições do script da arma no script de coletar, para isso use variavel statica no script da arma ou use o script abaixo para coletar a munição, caso for usar o script abaixo a sua arma devera estar com a tag "Arma".Callyde Jr escreveu:Ele coletou mais nao adicionou mais muniçao vou colocar esse script em C# e vou ver se funciona blz
- Código:
using UnityEngine;
using System.Collections;
public class Coletar : MonoBehaviour {
private bool pertoDoItem = false;
public int municao, valorMunicao;
private ArmaScript armaScript;
void Start(){
valorMunicao = 12;
armaScript = GameObject.FindGameObjectWithTag ("Arma").GetComponent<armaScript> ();
}
void Update(){
if(Input.GetKeyDown("e") && pertoDoItem == true){ // Se o player estiver perto da muniçao e pressiona E
armaScript.municao = municao.municao + valorMunicao; // Adiciona o valor que voce atribuir em "valorMunicao" ao seu numero atual de munição
Destroy(gameObject); // Destroi o coletavel
}
}
void OnTriggerEnter(Collider col){
if (col.gameObject.tag == "Player") { // verifica se o objeto que esta perto do coletavel é o player
pertoDoItem = true;
}
}
void OnTriggerExit(Collider coli){
if (coli.gameObject.tag == "Player") { // verifica se o objeto que saiu de perto do coletavel é o player
pertoDoItem = false;
}
}
}
Re: Coletavel para carregar a arma?
Vou usar esse que voce fez mais tarde quando eu chegar do trabalho esse script da arma em C# nao fucionou esta dando erro obg pela ajuda amigo
Re: Coletavel para carregar a arma?
Qual foi o erro?Callyde Jr escreveu:Vou usar esse que voce fez mais tarde quando eu chegar do trabalho esse script da arma em C# nao fucionou esta dando erro obg pela ajuda amigo
Re: Coletavel para carregar a arma?
Esse que voce fez por ultimo nao testei ele ainda so aquele da arma c# ele nao aparece no inspetor a muniçao, particula, sonArma
Re: Coletavel para carregar a arma?
Ele da algum erro ao compilar?Callyde Jr escreveu:Esse que voce fez por ultimo nao testei ele ainda so aquele da arma c# ele nao aparece no inspetor a muniçao, particula, sonArma
Re: Coletavel para carregar a arma?
esse script Coletar dis Error CS0246: the type or namespace name 'ArmaScript'
Re: Coletavel para carregar a arma?
vc tem um classe chamada armaScript ?
Weslley- Moderador
- PONTOS : 5727
REPUTAÇÃO : 744
Idade : 26
Áreas de atuação : Inversión, Desarrollo, Juegos e Web
Respeito as regras :
Re: Coletavel para carregar a arma?
Foi um erro bobo meu, desculpa.Callyde Jr escreveu:Eu acho que e aqui nessa parte que tem
armaScript
Na linha que eu tento acessar o script da arma eu coloquei o nome da classe em minusculo '-'.
- Código:
armaScript = GameObject.FindGameObjectWithTag ("Arma").GetComponent<armaScript> (); // Errado
armaScript = GameObject.FindGameObjectWithTag ("Arma").GetComponent<ArmaScript> (); // Correto
Script arrumado:
- Código:
using UnityEngine;
using System.Collections;
public class Coletar : MonoBehaviour {
private bool pertoDoItem = false;
public int municao, valorMunicao;
private ArmaScript armaScript;
void Start(){
valorMunicao = 12;
armaScript = GameObject.FindGameObjectWithTag ("Arma").GetComponent<ArmaScript> ();
}
void Update(){
if(Input.GetKeyDown("e") && pertoDoItem == true){ // Se o player estiver perto da muniçao e pressiona E
armaScript.municao = municao.municao + valorMunicao; // Adiciona o valor que voce atribuir em "valorMunicao" ao seu numero atual de munição
Destroy(gameObject); // Destroi o coletavel
}
}
void OnTriggerEnter(Collider col){
if (col.gameObject.tag == "Player") { // verifica se o objeto que esta perto do coletavel é o player
pertoDoItem = true;
}
}
void OnTriggerExit(Collider coli){
if (coli.gameObject.tag == "Player") { // verifica se o objeto que saiu de perto do coletavel é o player
pertoDoItem = false;
}
}
}
Re: Coletavel para carregar a arma?
O primeiro script Coletar nao da erro mais nao adiciona a municao esse ultimo Script esta dando o mesmo erro do outro ?
Re: Coletavel para carregar a arma?
vc pode tentar usar variaveis estaticas então, so para testesCallyde Jr escreveu:O primeiro script Coletar nao da erro mais nao adiciona a municao esse ultimo Script esta dando o mesmo erro do outro ?
Re: Coletavel para carregar a arma?
Vou pedir que você espere pelo próximo tutorial que vou lançar no meu canal (espero que ainda esta semana.)
É um sistema completíssimo de armas, com munição, coleta, etc, etc, etc.
É um sistema completíssimo de armas, com munição, coleta, etc, etc, etc.
Tópicos semelhantes
» Projétil para arma
» Ajuda arma se movimenta para cima e para baixo...
» Ajuda para fazer uma Arma
» Scena Demorando muito Para Carregar!
» Opiniões para carregar prefabs pesados: Resources, Asset Bundles ou cenas?
» Ajuda arma se movimenta para cima e para baixo...
» Ajuda para fazer uma Arma
» Scena Demorando muito Para Carregar!
» Opiniões para carregar prefabs pesados: Resources, Asset Bundles ou cenas?
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos