Adicionar +1 ao colidir com objeto
3 participantes
Página 1 de 1
Adicionar +1 ao colidir com objeto
eu to tentando fazer com que o ao colidir com o objeto adicione +1 no texto, com o primeiro funciona normal mas com os proximos nao acontece nada ele destroi faz o som mas o valor não muda, se alguem puder ajudar...
- Código:
using UnityEngine;
using System.Collections;
using UnityEngine.UI;
public class TriggerZone : MonoBehaviour {
public Text MyText;
public int score;
// Use this for initialization
void Start () {
MyText.text = "0";
score = 0;
}
void OnTriggerEnter (Collider coll) {
score = score + 1 ;
MyText.text = score.ToString();
Destroy (gameObject, 1);
}
void Update(){
}
}
lucasluiz789- Membro
- PONTOS : 3219
REPUTAÇÃO : 8
Idade : 26
Áreas de atuação : Level design
c# iniciante
Respeito as regras :
Re: Adicionar +1 ao colidir com objeto
isso são vários objetos ou é um objeto só que você entra várias vezes no mesmo colisor?
Re: Adicionar +1 ao colidir com objeto
varios, são os coletaveis pelo mapaMarcosSchultz escreveu:isso são vários objetos ou é um objeto só que você entra várias vezes no mesmo colisor?
lucasluiz789- Membro
- PONTOS : 3219
REPUTAÇÃO : 8
Idade : 26
Áreas de atuação : Level design
c# iniciante
Respeito as regras :
Re: Adicionar +1 ao colidir com objeto
consegui fazer um aqui q deu certo, pelo q eu percebi era pq o script tava no objeto que tinha o destroy no final entao sempre ele criava e depois apagava entao ficava entre o 1 e o 0, eu criei outro e coloquei no player agr funcionou, o script e so pra uma coisa visual mesmo só pro jogador saber quantos faltam entao esse servelucasluiz789 escreveu:varios, são os coletaveis pelo mapaMarcosSchultz escreveu:isso são vários objetos ou é um objeto só que você entra várias vezes no mesmo colisor?
- Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class variavelnotas : MonoBehaviour {
public static int notasvalor;
public Text notaspegas;
// Use this for initialization
void Start () {
notasvalor = 0;
notaspegas.text = notasvalor.ToString ();
}
void OnTriggerEnter (Collider coll){
notasvalor++;
notaspegas.text = notasvalor.ToString ();
}
// Update is called once per frame
void Update () {
}
}
lucasluiz789- Membro
- PONTOS : 3219
REPUTAÇÃO : 8
Idade : 26
Áreas de atuação : Level design
c# iniciante
Respeito as regras :
Re: Adicionar +1 ao colidir com objeto
Que bom que conseguiu arrumar o problema, só uma dica: Não coloque o script no player, a contagem de pontos não tem nada a ver com ele e sim com os itens, manter a coerência no projeto (como por exemplo quais componentes cada objeto terá) deixa tudo mais organizado e facilita o seu trabalho.
Eu recomendo criar um objeto vazio na cena com o nome de "Gerenciador de Coleta" e esse script nele:
E nos itens você pode colocar:
Porque o problema do seu script é que quando o player colidir com qualquer coisa além dos itens, você vai incrementar a variável de "notasValor".
Eu recomendo criar um objeto vazio na cena com o nome de "Gerenciador de Coleta" e esse script nele:
- Código:
using UnityEngine;
using UnityEngine.UI;
public class TextoGerenciado : MonoBehaviour{
public Text notasPegas;
public static int notasValor = 0;
void Update(){
notasPegas.text = notasValor.ToString();
}
}
E nos itens você pode colocar:
- Código:
void OnTriggerEnter(Collider col){
if(col.CompareTag("Player")){
TextoGerenciado.notasValor++;
Destroy(gameObject, 1);
}
}
Porque o problema do seu script é que quando o player colidir com qualquer coisa além dos itens, você vai incrementar a variável de "notasValor".
Re: Adicionar +1 ao colidir com objeto
valeu pela dicaMayLeone escreveu:Que bom que conseguiu arrumar o problema, só uma dica: Não coloque o script no player, a contagem de pontos não tem nada a ver com ele e sim com os itens, manter a coerência no projeto (como por exemplo quais componentes cada objeto terá) deixa tudo mais organizado e facilita o seu trabalho.
Eu recomendo criar um objeto vazio na cena com o nome de "Gerenciador de Coleta" e esse script nele:
- Código:
using UnityEngine;
using UnityEngine.UI;
public class TextoGerenciado : MonoBehaviour{
public Text notasPegas;
public static int notasValor = 0;
void Update(){
notasPegas.text = notasValor.ToString();
}
}
E nos itens você pode colocar:
- Código:
void OnTriggerEnter(Collider col){
if(col.CompareTag("Player")){
TextoGerenciado.notasValor++;
Destroy(gameObject, 1);
}
}
Porque o problema do seu script é que quando o player colidir com qualquer coisa além dos itens, você vai incrementar a variável de "notasValor".
lucasluiz789- Membro
- PONTOS : 3219
REPUTAÇÃO : 8
Idade : 26
Áreas de atuação : Level design
c# iniciante
Respeito as regras :
Tópicos semelhantes
» Como fazer para um objeto não colidir com um "collider" e o outro objeto si
» Como executar um som após o objeto colidir com o chão?
» Pausar animação ao colidir com determinado objeto
» Destruir um objeto ao colidir com o componente dele.
» Receber um valor quando o objeto não colidir
» Como executar um som após o objeto colidir com o chão?
» Pausar animação ao colidir com determinado objeto
» Destruir um objeto ao colidir com o componente dele.
» Receber um valor quando o objeto não colidir
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos