Sistema de batalha e save Unity 2D
2 participantes
Página 1 de 1
Sistema de batalha e save Unity 2D
Olá, eu estou com o problema de que eu não consigo criar um sistema para se eu encostar em meu inimigo, eu ir para outra scene e depois voltar na scene que eu estava no lugar que eu estava, e se eu estivesse onde eu parei, o monstro ainda estaria lá, eu gostaria de saber como eu posso resolver esse problema, ficarei muito grato se me ajudarem!
starfreddybou69- Iniciante
- PONTOS : 1984
REPUTAÇÃO : 0
Respeito as regras :
Re: Sistema de batalha e save Unity 2D
Como Está Seu Script ? e Diga em que parte do script está com problemas.
Magnatah- Instrutor
- PONTOS : 3548
REPUTAÇÃO : 209
Idade : 24
Áreas de atuação : Dєรєиvσlvєdσя Wєb(Fяσит-єиd), Blєиdєя, υиiтy, C#, ρнρ є Jαvαรcяiρт.
Respeito as regras :
Re: Sistema de batalha e save Unity 2D
- Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.SceneManagement;
public class SalvarPosic : MonoBehaviour {
public GameObject inimigo;
public bool delet;
string nomeCenaAtual;
// Use this for initialization
void Awake () {
nomeCenaAtual = SceneManager.GetActiveScene ().name;
}
// Update is called once per frame
void Start ()
{
//PlayerPrefs.DeleteAll ();
if (PlayerPrefs.HasKey (nomeCenaAtual + "X") && PlayerPrefs.HasKey (nomeCenaAtual + "Y") && PlayerPrefs.HasKey (nomeCenaAtual + "Z"))
{
transform.position = new Vector3 (PlayerPrefs.GetFloat(nomeCenaAtual + "X"), PlayerPrefs.GetFloat(nomeCenaAtual + "Y"), PlayerPrefs.GetFloat(nomeCenaAtual + "Z"));
}
}
public void Update ()
{
if (delet == true) {
Destroy (inimigo);
}
}
public void SalvarLocalizacao () {
PlayerPrefs.SetFloat (nomeCenaAtual + "X", transform.position.x);
PlayerPrefs.SetFloat (nomeCenaAtual + "Y", transform.position.y);
PlayerPrefs.SetFloat (nomeCenaAtual + "Z", transform.position.z);
delet = true;
}
}
Este é o script do save, que eu aliás vi no canal marcos schultz, o meu problema é que o inimigo sempre volta quando eu retorno para a scene fora da batalha, e também a câmera e as luzes não ficam no lugar certo.
- Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.SceneManagement;
public class acabouluta : MonoBehaviour {
public int vidainimigo2;
public GameObject inimigo;
public GameObject Player;
public Light luz1;
public Light luz2;
public string nomeCenaAtual;
// Use this for initialization
void Start () {
}
// Update is called once per frame.
void Update () {
vidainimigo2 = inimigo.GetComponent <inimigo> ().vidainimigo;
if (vidainimigo2 < 1) {
SceneManager.LoadSceneAsync ("Fase1");
}
}
}
Este é o Script de quando acabar a batalha, assim então deverá retornar a Fase1, porém eu gostaria de saber como retornar a fase 1 com meu personagem localizado onde eu estava quando eu fui para a outra scene, e também que o monstro não aparecesse mais, porém eu ainda não sou muito experiente e não consigo pensar em algo que possa dar certo.
starfreddybou69- Iniciante
- PONTOS : 1984
REPUTAÇÃO : 0
Respeito as regras :
Re: Sistema de batalha e save Unity 2D
Eu não sei exatamente em que parte está com problemas.Magnatah escreveu:Como Está Seu Script ? e Diga em que parte do script está com problemas.
starfreddybou69- Iniciante
- PONTOS : 1984
REPUTAÇÃO : 0
Respeito as regras :
Re: Sistema de batalha e save Unity 2D
o que era para acontecer, era eu entrar na batalha, e se eu ganhasse, eu voltaria a fase1, porém o monstro não estaria lá, porém também se conseguirmos fazer com que ele não apareça mais, ele não vai aparecer mesmo se eu perder.Magnatah escreveu:Como Está Seu Script ? e Diga em que parte do script está com problemas.
starfreddybou69- Iniciante
- PONTOS : 1984
REPUTAÇÃO : 0
Respeito as regras :
Re: Sistema de batalha e save Unity 2D
digo, se eu recomeçar a fase indo para a "fase1", o monstro continua lá e eu sempre vou lutar com ele, ganhando ou perdendo.*starfreddybou69 escreveu:o que era para acontecer, era eu entrar na batalha, e se eu ganhasse, eu voltaria a fase1, porém o monstro não estaria lá, porém também se conseguirmos fazer com que ele não apareça mais, ele não vai aparecer mesmo se eu perder.Magnatah escreveu:Como Está Seu Script ? e Diga em que parte do script está com problemas.
starfreddybou69- Iniciante
- PONTOS : 1984
REPUTAÇÃO : 0
Respeito as regras :
Re: Sistema de batalha e save Unity 2D
Basicamente Se Voce Ganhar a Fase o Npc Não Pode Mais Aparecer?
Magnatah- Instrutor
- PONTOS : 3548
REPUTAÇÃO : 209
Idade : 24
Áreas de atuação : Dєรєиvσlvєdσя Wєb(Fяσит-єиd), Blєиdєя, υиiтy, C#, ρнρ є Jαvαรcяiρт.
Respeito as regras :
Re: Sistema de batalha e save Unity 2D
Sim, eu encosto nele, começa uma nova scene da batalha, e se eu vencer, eu deveria voltar a posição que eu fui para a scene da batalha e o monstro não deveria estar lá, como jogos de RPG.Magnatah escreveu:Basicamente Se Voce Ganhar a Fase o Npc Não Pode Mais Aparecer?
starfreddybou69- Iniciante
- PONTOS : 1984
REPUTAÇÃO : 0
Respeito as regras :
Re: Sistema de batalha e save Unity 2D
Cria uma Booleana Que Indicará se Ele Já foi morto.
Essa Booleana Deverá ser salva.
Exemplo Super Básico:
Se não Salvar Não tem como saber se você Já fez ou não a fase.
Tutoriais De Saves:
- PlayerPrefs: https://www.youtube.com/watch?v=qpYmpRM6y3U
Essa Booleana Deverá ser salva.
Exemplo Super Básico:
- Código:
public bool InimigoMorto = false;
if (VidaDoInimigo <= 0)
{
InimigoMorto = true;
Save();
}
Se não Salvar Não tem como saber se você Já fez ou não a fase.
Tutoriais De Saves:
- PlayerPrefs: https://www.youtube.com/watch?v=qpYmpRM6y3U
Magnatah- Instrutor
- PONTOS : 3548
REPUTAÇÃO : 209
Idade : 24
Áreas de atuação : Dєรєиvσlvєdσя Wєb(Fяσит-єиd), Blєиdєя, υиiтy, C#, ρнρ є Jαvαรcяiρт.
Respeito as regras :
Re: Sistema de batalha e save Unity 2D
Obrigado, como eu disse, eu sou iniciante, vou testar esse modo, eu na verdade não sabia que existia o "Save ();" kkk, mas obrigado!
starfreddybou69- Iniciante
- PONTOS : 1984
REPUTAÇÃO : 0
Respeito as regras :
Re: Sistema de batalha e save Unity 2D
Não Exite o Save(); foi apenas um exemplo.
Você Sabe o Básico de Programação ?
Você Sabe o Básico de Programação ?
Magnatah- Instrutor
- PONTOS : 3548
REPUTAÇÃO : 209
Idade : 24
Áreas de atuação : Dєรєиvσlvєdσя Wєb(Fяσит-єиd), Blєиdєя, υиiтy, C#, ρнρ є Jαvαรcяiρт.
Respeito as regras :
Re: Sistema de batalha e save Unity 2D
eu sei! porém ainda sou inexperiente. aliás o "Save();" que você me mandou é um void do vídeo?
starfreddybou69- Iniciante
- PONTOS : 1984
REPUTAÇÃO : 0
Respeito as regras :
Re: Sistema de batalha e save Unity 2D
Não, Apenas Usei Como Exemplo.
Magnatah- Instrutor
- PONTOS : 3548
REPUTAÇÃO : 209
Idade : 24
Áreas de atuação : Dєรєиvσlvєdσя Wєb(Fяσит-єиd), Blєиdєя, υиiтy, C#, ρнρ є Jαvαรcяiρт.
Respeito as regras :
starfreddybou69- Iniciante
- PONTOS : 1984
REPUTAÇÃO : 0
Respeito as regras :
Re: Sistema de batalha e save Unity 2D
Aliás, você poderia me dizer/explicar o que teria dentro desse void Save () que você deu como exemplo?
starfreddybou69- Iniciante
- PONTOS : 1984
REPUTAÇÃO : 0
Respeito as regras :
Re: Sistema de batalha e save Unity 2D
pois o meu eu não deixei para salvar
starfreddybou69- Iniciante
- PONTOS : 1984
REPUTAÇÃO : 0
Respeito as regras :
Re: Sistema de batalha e save Unity 2D
Cria um Save e Load em PlayerPrefs Seria Algo tipo:
- Código:
public bool InimigoMorto = false;
//Converte Booleana Para Inteiro
public int SetBoolForInt(bool val)
{ //troca "false" e "true" Por "0" e "1".
//0 -> false //1 -> true
return (val) ? 1 : 0;
}
//Converte Inteiro Para Booleana
public bool SetIntForBool(int val)
{ //Troca "0" e "1" Por "false" e "true".
//0 -> false //1 -> true
return (val == 0) ? false : true;
}
public void Save()
{
/* No PlayerPrefs Não Tem Como Salvar Tipo bool então eu uso
* Uma Função Que Converte int em bool e vice-versa. (Não é no sentido literal).
* Tá Mais para Gambiarra. */
PlayerPrefs.SetInt("NpcDead", SetBoolForInt(InimigoMorto));
}
public void Load()
{
// Se Existe a Key "NpcDead".
if (PlayerPrefs.HasKey("NpcDead"))
{
InimigoMorto = SetIntForBool(PlayerPrefs.GetInt("NpcDead"));
}
else
{
PlayerPrefs.SetInt("NpcDead", SetBoolForInt(InimigoMorto));
}
}
Magnatah- Instrutor
- PONTOS : 3548
REPUTAÇÃO : 209
Idade : 24
Áreas de atuação : Dєรєиvσlvєdσя Wєb(Fяσит-єиd), Blєиdєя, υиiтy, C#, ρнρ є Jαvαรcяiρт.
Respeito as regras :
Re: Sistema de batalha e save Unity 2D
tudo bem, muito obrigado, vou testar!
starfreddybou69- Iniciante
- PONTOS : 1984
REPUTAÇÃO : 0
Respeito as regras :
Re: Sistema de batalha e save Unity 2D
Coloque a Load() No Start()
Magnatah- Instrutor
- PONTOS : 3548
REPUTAÇÃO : 209
Idade : 24
Áreas de atuação : Dєรєиvσlvєdσя Wєb(Fяσит-єиd), Blєиdєя, υиiтy, C#, ρнρ є Jαvαรcяiρт.
Respeito as regras :
Re: Sistema de batalha e save Unity 2D
eu não entendi muito bem onde eu encaixaria o script, seria no inimigo ? e quando ele for dar load, eu pego o componente load e coloco? porque os inimigos são diferentes, no modo do jogo eles são objetos diferentes, mas são o mesmo inimigo, por isso estou meio confuso
starfreddybou69- Iniciante
- PONTOS : 1984
REPUTAÇÃO : 0
Respeito as regras :
Re: Sistema de batalha e save Unity 2D
o inimigo vai atrás de você, e depois que voce encosta nele, outra scene é criada com outro objeto, porém é o mesmo inimigo.
starfreddybou69- Iniciante
- PONTOS : 1984
REPUTAÇÃO : 0
Respeito as regras :
Tópicos semelhantes
» Como criar sistema de Habilidades (Skills) para o personagem 2D / e sistema de batalha 2D
» Como um sistema de batalha 2d? (Script C#)
» SISTEMA DE SAVE
» (DUVIDA) Sistema de Save e Load!
» Me ajudem com um sistema de save game
» Como um sistema de batalha 2d? (Script C#)
» SISTEMA DE SAVE
» (DUVIDA) Sistema de Save e Load!
» Me ajudem com um sistema de save game
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos