Sistema de Pontos (código funciona em um gameobject normal, porém não em um prefab.)
3 participantes
Página 1 de 1
Sistema de Pontos (código funciona em um gameobject normal, porém não em um prefab.)
Olá, criei um sistemas de pontos para o meu primeiro jogo (por isso tantas duvidas, estou aprendendo).
Funciona assim, tenho dois objetos, a bola (que ao colidir somo +1 no score) e um objeto pra exibir o score na tela, onde tenho um código com uma função que chamo no código adicionado na bola.
Ele funciona perfeitamente quando coloco ele em um game object que não é um prefab,porém se eu transformo a bola em um préfab eu não posso adicionar o objeto do contador de pontos na bola, e se eu tornar o contador um prefab vai alterar o valor do score do prefab, e não do contador que está no jogo.
(a bola tem que ser um préfab pois ela tá adicionada a um objeto que gera ela aleatoriamente.
Att
VSouza
Segue os códigos.
Código do contador:
código bola:
Funciona assim, tenho dois objetos, a bola (que ao colidir somo +1 no score) e um objeto pra exibir o score na tela, onde tenho um código com uma função que chamo no código adicionado na bola.
Ele funciona perfeitamente quando coloco ele em um game object que não é um prefab,porém se eu transformo a bola em um préfab eu não posso adicionar o objeto do contador de pontos na bola, e se eu tornar o contador um prefab vai alterar o valor do score do prefab, e não do contador que está no jogo.
(a bola tem que ser um préfab pois ela tá adicionada a um objeto que gera ela aleatoriamente.
Att
VSouza
Segue os códigos.
Código do contador:
- Código:
using UnityEngine;
using System.Collections;
public class pontos : MonoBehaviour {
public int score;
// Use this for initialization
void Start () {
}
// Update is called once per frame
void Update () {
}
public void addpoints(int points) {
score += points;
}
void OnGUI () {
GUILayout.Label (score.ToString ()); // tenho que descobrir como mudar fonte e tamanho
}
}
}
código bola:
- Código:
using UnityEngine;
using System.Collections;
public class destruir : MonoBehaviour {
public pontos ponts;
public int soma = 1;
void OnCollisionEnter2D (Collision2D Colider) {
if (Colider.gameObject.tag == "destroi") {
ponts.addpoints (soma);
Destroy(gameObject);
}
}
}
VSouza- Membro
- PONTOS : 3173
REPUTAÇÃO : 5
Respeito as regras :
Re: Sistema de Pontos (código funciona em um gameobject normal, porém não em um prefab.)
basta você procurar o script de pontos quando a bola for instanciada
- Código:
using UnityEngine;
using System.Collections;
public class destruir : MonoBehaviour
{
public int soma = 1;
private pontos ponts;
void Start()
{
ponts = FindObjectOfType(typeof(pontos)) as pontos;
}
void OnCollisionEnter2D (Collision2D Colider)
{
if (Colider.gameObject.tag == "destroi")
{
ponts.addpoints (soma);
Destroy(gameObject);
}
}
}
Weslley- Moderador
- PONTOS : 5727
REPUTAÇÃO : 744
Idade : 26
Áreas de atuação : Inversión, Desarrollo, Juegos e Web
Respeito as regras :
Re: Sistema de Pontos (código funciona em um gameobject normal, porém não em um prefab.)
pra mudar fonte e tamanho use https://docs.unity3d.com/ScriptReference/GUI-skin.html
Mas eu recomendo usar UI
Mas eu recomendo usar UI
RenanMSV- Instrutor
- PONTOS : 4484
REPUTAÇÃO : 356
Áreas de atuação : Programação em C#, PHP. SQL, JavaScript (Web)
Respeito as regras :
Re: Sistema de Pontos (código funciona em um gameobject normal, porém não em um prefab.)
weslleyFx escreveu:basta você procurar o script de pontos quando a bola for instanciada
- Código:
using UnityEngine;
using System.Collections;
public class destruir : MonoBehaviour
{
public int soma = 1;
private pontos ponts;
void Start()
{
ponts = FindObjectOfType(typeof(pontos)) as pontos;
}
void OnCollisionEnter2D (Collision2D Colider)
{
if (Colider.gameObject.tag == "destroi")
{
ponts.addpoints (soma);
Destroy(gameObject);
}
}
}
Olá, não funcionou, quando adicionei o
void Start() {
ponts = FindObjectOfType(typeof(pontos)) as pontos;
}
A bola parou de ser instanciada. :/
VSouza- Membro
- PONTOS : 3173
REPUTAÇÃO : 5
Respeito as regras :
Re: Sistema de Pontos (código funciona em um gameobject normal, porém não em um prefab.)
como se isso não envolve nada na parte de instanciar o objeto
Weslley- Moderador
- PONTOS : 5727
REPUTAÇÃO : 744
Idade : 26
Áreas de atuação : Inversión, Desarrollo, Juegos e Web
Respeito as regras :
Re: Sistema de Pontos (código funciona em um gameobject normal, porém não em um prefab.)
Vdd, desculpa. Tinha desativado o instanciador e não tinha percebido.weslleyFx escreveu:como se isso não envolve nada na parte de instanciar o objeto
Agora tá funcionando!!! Obrigado!!!
VSouza- Membro
- PONTOS : 3173
REPUTAÇÃO : 5
Respeito as regras :
Weslley- Moderador
- PONTOS : 5727
REPUTAÇÃO : 744
Idade : 26
Áreas de atuação : Inversión, Desarrollo, Juegos e Web
Respeito as regras :
Tópicos semelhantes
» transformar um prefab em gameobject
» codigo não deleta prefab e não respeita o if
» [Resolvido] duvida sobre prefab, object e gameobject
» Unity 2021.3.4f1 - Adicionar script em um gameObject por código
» como fazer um gameobject selecionar no código ao colidir com o mesmo
» codigo não deleta prefab e não respeita o if
» [Resolvido] duvida sobre prefab, object e gameobject
» Unity 2021.3.4f1 - Adicionar script em um gameObject por código
» como fazer um gameobject selecionar no código ao colidir com o mesmo
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos