Coleta de itens
2 participantes
Página 1 de 1
Coleta de itens
Estou criando um jogo e estou salvando as informações, até aí tudo bem, mas eu quero que quando o jogador reiniciar, a estrela por exemplo que ele já coletou nao aparece mais no jogo, mas eu usei esse script e qd eu coleto e salvo ao reiniciar o jogo todas as estrelas, mesmo as que eu nao coletei, somem, gostaria de saber se alguém pode me ajudar
- Código:
using UnityEngine;
public class ControlarVisibilidadeDoObjeto : MonoBehaviour
{
private void Start()
{
// Verifique se o objeto já foi coletado
int id = gameObject.GetInstanceID();
if (!PlayerPrefs.HasKey(id.ToString()))
{
// O objeto não foi coletado, então colete-o e marque no PlayerPrefs
ColetarEMarcarObjeto();
}
else
{
// O objeto já foi coletado, você pode desativá-lo ou fazer outras ações aqui
// No entanto, vamos salvar o objeto para que ele não seja destruído ao reiniciar o jogo
gameObject.AddComponent<DontDestroyOnLoad>();
}
}
// Função para coletar o objeto e marcar no PlayerPrefs
private void ColetarEMarcarObjeto()
{
// Execute as ações de coleta aqui, por exemplo, toque um som, aumente a pontuação, etc.
// Marque o objeto como coletado no PlayerPrefs
int id = gameObject.GetInstanceID();
PlayerPrefs.SetInt(id.ToString(), 1);
PlayerPrefs.Save();
}
}
Última edição por Magnatah em Ter Dez 12, 2023 8:47 pm, editado 1 vez(es) (Motivo da edição : Coloque os scripts na caixa "SCRIPT")
eduardonog30- Avançado
- PONTOS : 2900
REPUTAÇÃO : 5
Respeito as regras :
Re: Coleta de itens
se não me engano (muito tempo sem programar) o id do objeto muda, oq vc pode fazer é definir uma variável publica e vc mesmo definir um id para cada objeto ao coloca-lo na cena
[list=linenums]
[*]using UnityEngine;
[*]public class ControlarVisibilidadeDoObjeto : MonoBehaviour
[*]{
[*] public int id = -1;
[*] private void Start()
[*] {
[*] // Verifique se o objeto já foi coletado
[*] // int id = gameObject.GetInstanceID();
[*] if (!PlayerPrefs.HasKey(id.ToString()))
[*] {
[*] // O objeto não foi coletado, então colete-o e marque no PlayerPrefs
[*] ColetarEMarcarObjeto();
[*] }
[*] else
[*] {
[*] // O objeto já foi coletado, você pode desativá-lo ou fazer outras ações aqui
[*] // No entanto, vamos salvar o objeto para que ele não seja destruído ao reiniciar o jogo
[*] gameObject.AddComponent<DontDestroyOnLoad>();
[*] }
[*] }
[*] // Função para coletar o objeto e marcar no PlayerPrefs
[*] private void ColetarEMarcarObjeto()
[*] {
[*] // Execute as ações de coleta aqui, por exemplo, toque um som, aumente a pontuação, etc.
[*] // Marque o objeto como coletado no PlayerPrefs
[*] int id = gameObject.GetInstanceID();
[*] PlayerPrefs.SetInt(id.ToString(), 1);
[*] PlayerPrefs.Save();
[*] }
[*]}
[/list]
[list=linenums]
[*]using UnityEngine;
[*]public class ControlarVisibilidadeDoObjeto : MonoBehaviour
[*]{
[*] public int id = -1;
[*] private void Start()
[*] {
[*] // Verifique se o objeto já foi coletado
[*] // int id = gameObject.GetInstanceID();
[*] if (!PlayerPrefs.HasKey(id.ToString()))
[*] {
[*] // O objeto não foi coletado, então colete-o e marque no PlayerPrefs
[*] ColetarEMarcarObjeto();
[*] }
[*] else
[*] {
[*] // O objeto já foi coletado, você pode desativá-lo ou fazer outras ações aqui
[*] // No entanto, vamos salvar o objeto para que ele não seja destruído ao reiniciar o jogo
[*] gameObject.AddComponent<DontDestroyOnLoad>();
[*] }
[*] }
[*] // Função para coletar o objeto e marcar no PlayerPrefs
[*] private void ColetarEMarcarObjeto()
[*] {
[*] // Execute as ações de coleta aqui, por exemplo, toque um som, aumente a pontuação, etc.
[*] // Marque o objeto como coletado no PlayerPrefs
[*] int id = gameObject.GetInstanceID();
[*] PlayerPrefs.SetInt(id.ToString(), 1);
[*] PlayerPrefs.Save();
[*] }
[*]}
[/list]
Re: Coleta de itens
- Código:
using UnityEngine;
public class ControlarVisibilidadeDoObjeto : MonoBehaviour
{
public int id = -1;
private void Start()
{
// Verifique se o objeto já foi coletado
if (!PlayerPrefs.HasKey(id.ToString()))
{
// O objeto não foi coletado, então colete-o e marque no PlayerPrefs
ColetarEMarcarObjeto();
}
else
{
// O objeto já foi coletado, você pode desativá-lo ou fazer outras ações aqui
// No entanto, vamos salvar o objeto para que ele não seja destruído ao reiniciar o jogo
gameObject.AddComponent<DontDestroyOnLoad>();
}
}
// Função para coletar o objeto e marcar no PlayerPrefs
private void ColetarEMarcarObjeto()
{
// Execute as ações de coleta aqui, por exemplo, toque um som, aumente a pontuação, etc.
// Marque o objeto como coletado no PlayerPrefs
int id = gameObject.GetInstanceID();
PlayerPrefs.SetInt(id.ToString(), 1);
PlayerPrefs.Save();
}
}
n sei pq q bugou assim '-'
Tópicos semelhantes
» Dúvida quanto a coleta de itens.
» Sisteminha para coleta de itens
» Coleta de Madeiras
» Como liberar novos personagens a partir de coleta de moedas?
» Relacionar quantidade de pontos/coleta com recuperação ou ganho de vida
» Sisteminha para coleta de itens
» Coleta de Madeiras
» Como liberar novos personagens a partir de coleta de moedas?
» Relacionar quantidade de pontos/coleta com recuperação ou ganho de vida
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos